[練習]
forked from package土台用 (diff: 260)
Related images
ActionScript3 source code
/**
* Copyright Tamanegi_kenshi ( http://wonderfl.net/user/Tamanegi_kenshi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/oYgc
*/
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.PixelSnapping;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;
import flash.text.TextField;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.ColorMaterial;
//
import flash.system.Security;
public class FlashTest extends Sprite {
private var file:String = "http://assets.wonderfl.net/images/related_images/4/46/46b4/46b43fe6e70bed538a247d1cbde929be12baac9e";
private var ballArr:Array = new Array();
private var ballX:Array = new Array();
private var ballY:Array = new Array();
private var bm:Bitmap;
private var bm2:Bitmap;
private var angle:int = 0;
private var rect:Sprite;
private var dx:int = 3;
private var dy:int = 10;
//papervision3d
private var camera:Camera3D;
private var scene:Scene3D;
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var plane:Cube;
private var vz:int = 5;
public function FlashTest() {
init();
}//FrashTest
private function init():void{
Security.allowDomain("assets.wonderfl.net");
Security.loadPolicyFile("http://assets.wonderfl.net/crossdomain.xml");
//
//papervision3d
camera = new Camera3D();
scene = new Scene3D();
viewport = new Viewport3D(465, 465);
addChild(viewport);
renderer = new BasicRenderEngine();
var my_load:Loader=new Loader();
var my_url:URLRequest=new URLRequest(file);
my_load.load(my_url);
my_load.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
}
//ロードが終了後のイベント
private function onComplete(event:Event):void{
var content:Bitmap = event.target.content;
var my_bmd:BitmapData=new BitmapData(content.width,content.height);
my_bmd.draw(content);
bm = new Bitmap(my_bmd);
var material:BitmapMaterial = new BitmapMaterial(my_bmd);
var materials:MaterialsList = new MaterialsList({all:material});
material.doubleSided=true;
plane = new Cube(materials, 1000, 1000, 1000);
plane.y = 0;
scene.addChild(plane);
camera.x = 0;
camera.y = 0;
camera.z = -30;
camera.rotationX = 30;
// camera.zoom = 0;
// camera.focus = 0;
// camera.target = plane;
var bd:BitmapData=my_bmd.clone();
bm2 = new Bitmap(bd);
//addChild(bm2);
// rect = new Sprite();
// bm.x = -bm.height/2;
// bm.y = -bm.height/2;
// rect.addChild(bm);
// stage.addChild(rect);
// rect.x=232;
// rect.y=232;
// rect.rotationY=0;
// rect.scaleX=rect.scaleY=1;
for(var i:int = 0; i < 100; i++){
// var radian:Number = 360 / 100 * i * Math.PI / 180;
var material2:ColorMaterial = new ColorMaterial(0xffff00);
var plane2:Plane = new Plane(material2, 50, 50);
// plane2.z = Math.cos(radian) * 300;
// plane2.x = Math.sin(radian) * 300;
plane2.z = i * 100;
plane2.rotationZ = 90;
// scene.addChild(plane2);
}
addEventListener(Event.ENTER_FRAME,onEnter);
// rect.addEventListener(Event.ENTER_FRAME,onSakana);
// stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
// stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
/* for(var i:int=0;i<my_bmd.width;i++){
for(var j:int=0;j<my_bmd.height;j++){
var ball:Ball = new Ball(my_bmd.getPixel(i,j));
ballX.push(i*5);
ballY.push(j*5);
ball.alpha=0.1;
ball.scaleX=ball.scaleY=0.5;
ball.x=Math.random()*300;
ball.y=Math.random()*300;
addChild(ball);
ballArr.push(ball);
}
}*/
//stage.addEventListener(MouseEvent.CLICK,onClick);
}//onComplete
/*private function onClick(event:MouseEvent):void{
for(var i:int=0;i<ballArr.length;i++){
Tweener.addTween(ballArr[i],{x:ballX[i],y:ballY[i],alpha:1,delay:(ballArr.length-i)/2,time:5});
}
}*/
private function onEnter(event:Event):void{
angle+=10;
var radian:Number = angle*Math.PI/180;
/*
bm2.x=160+Math.cos(radian)*150;
bm2.y=150+Math.sin(radian)*150;
*/
// rect.rotation+=Math.cos(radian)*2;
// rect.scaleX=rect.scaleY=rect.y/500;
// graphics.clear();
// graphics.lineStyle(1,0x000000);
// graphics.moveTo(250,0);
// graphics.lineTo(rect.x,rect.y);
//papervision3d
//plane.rotationZ+=1;
// plane.rotationY+=1;
// plane.z += vz;
// if(plane.z > 800 || plane.z < -150){
// vz *= -1;
// }
// plane.x -= (232 - mouseX) / 10;
// plane.y += (300 - mouseY) / 100;
// var cameraDz:Number = (plane.z - camera.z);
// cameraDz = 300;
// camera.x = plane.x;
// camera.focus += plane.z - 1;
// var x1:Number = (plane.x - camera.x);
// var z1:Number = (plane.z - camera.z);
// var angle:Number = Math.atan2(x1, z1);
// camera.rotationY = angle * 180 / Math.PI;
renderer.renderScene(scene,camera,viewport);
}//onEnter
// private function onSakana(event:Event):void{
// var ay2:Number = (400-event.target.y)*0.1;
// event.target.y+=ay2;
// event.target.x+=dx;
// if(event.target.x>=600 || event.target.x<=-150){
// dx*=-1;
// if(event.target.rotationY==180){
// event.target.rotationY=0;
// }else{
// event.target.rotationY=180;
/// }
// }
// }//onSakana
/* private function onDown(event:MouseEvent):void{
if(rect.rotationY==180){
Tweener.addTween(rect,{rotation:-90,time:1});
}else{
Tweener.addTween(rect,{rotation:90,time:1});
}
rect.addEventListener(Event.ENTER_FRAME,onEn);
// rect.removeEventListener(Event.ENTER_FRAME,onSakana);
}//onDown
private function onUp(event:MouseEvent):void{
Tweener.addTween(rect,{rotation:0,time:2});
rect.removeEventListener(Event.ENTER_FRAME,onEn);
// rect.addEventListener(Event.ENTER_FRAME,onSakana);
}//onUp
private function onEn(event:Event):void{
var ax:Number = (250-event.target.x)*0.1;
var ay:Number = (0-event.target.y)*0.01;
event.target.x+=ax;
event.target.y+=ay;
}//onEn
*/
}//class
}//package
/*
import flash.display.Sprite;
class Ball extends Sprite{
function Ball(color:uint){
graphics.beginFill(color);
graphics.drawCircle(0,0,5);
graphics.endFill();
}
}
*/
