BeTweenAS3 delay完了のハンドリングをしたい、けどできない
♥0 |
Line 41 |
Modified 2009-10-15 16:18:04 |
MIT License
archived:2017-03-10 15:12:57
ActionScript3 source code
/**
* Copyright quqjp ( http://wonderfl.net/user/quqjp )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/4cEO
*/
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させる。
*/
// 四角のscaleを2倍にします
//var t0:ITween = BetweenAS3.tween(rectshape, { scaleX:2, scaleY:2}, Expo.easeOut, 1.0); まちがえた;汗
var t0:ITween = BetweenAS3.tween(rectshape, { scaleX:2, scaleY:2}, null, 1.0,Expo.easeOut);
// t0開始ハンドリング
t0.addEventListener(TweenEvent.PLAY, function(e:TweenEvent) {
e.target.removeEventListener(e.type, arguments.callee);
//色を変えます
tint();
})
// t0 を2秒後に開始させます
var t1:ITween = BetweenAS3.delay(t0, 2.0);
// 開始
t1.play()
/*
結果:
t1.play() の段階で、 t0 の TweenEvent.PLAYイベントが発生してしまう
*/
}
//rectshape着色
private function tint():void{
var c:ColorTransform = rectshape.transform.colorTransform
c.color = 0x00ff00;
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();
}
}