forked from: flash on 2010-12-14
forked from flash on 2010-12-14 (diff: 92)
クリックするとまわりながら3Dが拡大して消えてく--失敗
ActionScript3 source code
/**
* Copyright asobuno2010 ( http://wonderfl.net/user/asobuno2010 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/i3uk
*/
// forked from asobuno2010's flash on 2010-12-14
// クリックするとまわりながら3Dが拡大して消えてく--失敗
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.utils.Timer;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import com.flashdynamix.motion.Tweensy;
public class Anime1 extends Sprite {
public function Anime1():void {
// クリックイベントを監視する
stage.addEventListener("click", clickHandler);
}
private function clickHandler(event:MouseEvent):void {
var camera :Camera3D;
var scene :Scene3D;
var viewport :Viewport3D;
var renderer :BasicRenderEngine;
var cube :Cube;
camera = new Camera3D();
camera.x = 0;
camera.y = 0;
camera.z = -1000;
scene = new Scene3D();
viewport = new Viewport3D( stage.stageWidth, stage.stageHeight, false, true );
renderer = new BasicRenderEngine();
addChild( viewport );
var light:PointLight3D = new PointLight3D(false);
light.x = 0;
light.y = 0;
light.z = -1000;
var material :FlatShadeMaterial = new FlatShadeMaterial(light, Math.random()*0x1000000);
//var material :FlatShadeMaterial = new FlatShadeMaterial(light, 0x00ffcc);
material.interactive = true;
var materials :MaterialsList = new MaterialsList( { all : material } );
cube = new Cube( materials );
cube.x = 0;
cube.y = 0;
cube.z = 0;
/*ここからぺーすと
public function PV3D_01() {
camera = new Camera3D();
camera.x = 0;
camera.y = 0;
camera.z = -1000;
scene = new Scene3D();
viewport = new Viewport3D( stage.stageWidth, stage.stageHeight, false, true );
renderer = new BasicRenderEngine();
addChild( viewport );
var light:PointLight3D = new PointLight3D(false);
light.x = 0;
light.y = 0;
light.z = -1000;
var material :FlatShadeMaterial = new FlatShadeMaterial(light, Math.random()*0x1000000);
//var material :FlatShadeMaterial = new FlatShadeMaterial(light, 0x00ffcc);
material.interactive = true;
var materials :MaterialsList = new MaterialsList( { all : material } );
cube = new Cube( materials );
cube.x = 0;
cube.y = 0;
cube.z = 0;
こまでペースト */
/* // 円を作成
var s:Sprite = new Sprite();
s.graphics.beginFill(Math.random() * 0x1000000);
s.graphics.drawCircle(10, 0, 10);
s.graphics.endFill();
s.scaleX = s.scaleY = 0;
addChild(s);
*/
// 円をクリックされた位置に移動
cube.x = event.stageX;
cube.y = event.stageY;
// 回転の方向をランダムにさせる
var kakudo:int = xGetRandomInt(-2, 2);
function xGetRandomInt(nMin:Number, nMax:Number):int {
var nRandom:int = Math.floor(Math.random() * (nMax-nMin+1))+nMin;
return nRandom;
//}
scene.addChild( cube );
// タイマー開始
var timer:Timer = new Timer(50, 20);
timer.start();
timer.addEventListener("timer", function(event:Event):void {
var ratio:Number = timer.currentCount / timer.repeatCount;
cube.alpha = 1 - ratio;
cube.scaleX = 20 * ratio;
cube.scaleY = 20 * ratio;
cube.rotationX = kakudo * 180 * ratio;
});
//timer.addEventListener("timerComplete", function(event:Event):void {
// scene.removeChild(cube);
//});
}
}
}
}
