forked from: BeTweenAS3 delay完了のハンドリングをしたい、けどできない
forked from BeTweenAS3 delay完了のハンドリングをしたい、けどできない (diff: 22)
ActionScript3 source code
/**
* Copyright matsumos ( http://wonderfl.net/user/matsumos )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/zAHg
*/
// forked from quqjp's BeTweenAS3 delay完了のハンドリングをしたい、けどできない
package {
import flash.display.Sprite;
import flash.geom.ColorTransform
import org.libspark.betweenas3.BetweenAS3
import org.libspark.betweenas3.tweens.ITween;
import org.libspark.betweenas3.easing.Back
import org.libspark.betweenas3.easing.Expo
import org.libspark.betweenas3.events.TweenEvent
public class FlashTest extends Sprite {
private var rectshape:BasicRectShapeSprite;
public function FlashTest() {
//四角をつくります
rectshape = new BasicRectShapeSprite();
this.addChild(rectshape);
betweenTest();
}
private function betweenTest():void{
/*
実現したい内容:
2秒間そのまま待つ、
rectshape を緑に塗る、
rectshape を2倍のscaleにtweenさせる。
*/
BetweenAS3.delay(
BetweenAS3.serial(
BetweenAS3.func(tint,[0x00FF00]),
BetweenAS3.tween(rectshape, { scaleX:2, scaleY:2}, Expo.easeOut, 1.0)
),2.0).play();
// うーん?
var t:ITween = BetweenAS3.delay(BetweenAS3.func(null),4.0);
t.addEventListener(TweenEvent.COMPLETE,function():void{tint(0x0000FF)});
t.play();
/*
結果:
t1.play() の段階で、 t0 の TweenEvent.PLAYイベントが発生してしまう
*/
}
//rectshape着色
private function tint(color:uint):void{
var c:ColorTransform = rectshape.transform.colorTransform
c.color = color;
rectshape.transform.colorTransform = c;
}
}
}
import flash.display.Shape;
import flash.display.Graphics;
class BasicRectShapeSprite extends Shape{
public function BasicRectShapeSprite(_width:Number = 100, _height:Number = 100, _color:Number = 0xFF0000) {
var g:Graphics = this.graphics;
g.beginFill(_color);
g.drawRect(- _width / 2, - _height / 2, _width, _height);
g.endFill();
}
}
