flash on 2010-1-16
♥0 |
Line 49 |
Modified 2010-01-16 03:22:45 |
MIT License
archived:2017-03-20 10:37:53
ActionScript3 source code
/**
* Copyright yanagi1001 ( http://wonderfl.net/user/yanagi1001 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/f9wy
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.GlowFilter;
[SWF(width="465", height="465",backgroundColor="0x000000")]
public class WonderflBook extends Sprite {
private var _ball:Sprite;
private var _startX:Number = 0;//xのスタート位置
private var _endX:Number = stage.stageWidth;//xのエンド位置
private var _frameCount:uint = 0;//再生ヘッド(フレーム数カウント用の変数)
private var _frameCountLimit:uint = 28;//コマ数(最終フレームの位置)
private var _animationFrames:Array;//フレーム格納用の配列
public function WonderflBook() {
init();
}
public function init():void {
_animationFrames = generate_animationFrames();
_ball = new Sprite();
_ball.graphics.lineStyle(1, 0x00ffff);
_ball.graphics.beginFill(0x00ffff, 0.2);
_ball.graphics.drawCircle(0,stage.stageHeight/2,30);
_ball.graphics.endFill();
_ball.filters = [new GlowFilter(0x00ffff,1,16,16,2,2)];
addChild(_ball);
start();
}
private function generate_animationFrames():Array {
var tmp:Array = new Array();
var easeRatio:Number = 0.2;
var tmpX:Number = _startX;
for(var i:uint=0; i<_frameCountLimit; i++) {
tmpX += (_endX-tmpX)*easeRatio;
tmp.push(tmpX);
}
return tmp;
}
private function render(e:Event):void{//レンダリング用のメソッド
if(_frameCount < _frameCountLimit){//現在のフレーム数が_frameCountLimit以内なら
_ball.x=_animationFrames[_frameCount];//_ballのxに今のコマ数のx座標を代入
}else{
stop();//アニメーション終了
}
_frameCount++;//再生ヘッドを進める
}
public function start():void{addEventListener(Event.ENTER_FRAME,render);};//スタート用のメソッド。renderがENTER_FRAMEのタイミングで実行されるように設定
public function stop():void{removeEventListener(Event.ENTER_FRAME,render);};//ストップ用のメソッド。renderがENTER_FRAMEのタイミングで実行されるように設定されているのを解除
}
}