プロパティ毎にremoveTweens
2010.10.8 金曜日
TweenerのremoveTweensについてあまり書かれていないのでメモ。オブジェクトにaddTweenしたプロパティの一部だけを止めたい場合は、「Tweener.removeTweens(オブジェクト, プロパティ);」といった書き方をします。プロパティ名はStringで指定し、複数ある場合はカンマ区切りで続けて書きます。プロパティ部分を省略するとすべてトゥイーンが止まります。
一度もaddTweenせずにremoveTweensをプロパティ指定して呼びだすと、「TypeError: Error #1009: ~~~」が発生します。起動時に何でもいいのでオブジェクトにaddTweenしておくとエラーを回避できます。
//Main.as
package {
import caurina.transitions.Tweener;
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Main extends MovieClip {
private var Circle_mc:MovieClip;
private var fade:Boolean;
private var move:Boolean;
public function Main():void {
//円
Circle_mc = new MovieClip();
Circle_mc.graphics.beginFill(0xFFFFFF, 1);
Circle_mc.graphics.drawCircle(0, 0, 60);
Circle_mc.x = 100;
Circle_mc.y = stage.stageHeight / 2;
this.addChild(Circle_mc);
//説明文
var Text_tf:TextField = new TextField();
Text_tf.textColor = 0xFFFFFF;
Text_tf.text = "KeyDown (ON/OFF)n1 : Moven2 : Alphan3 : Both";
Text_tf.x = Text_tf.y = 10;
Text_tf.autoSize = TextFieldAutoSize.LEFT;
this.addChild(Text_tf);
//動作
Change("fade", true);
Change("move", true);
//リスナー登録
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
}
//キーボードが押された場合
private function KeyDown(e:KeyboardEvent):void {
//フェードイン(アウト) トグル
if (e.keyCode == 49 || e.keyCode == 97) Change("fade", !fade);
//x軸移動 トグル
else if (e.keyCode == 50 || e.keyCode == 98) Change("move", !move);
//3 停止(どちらも停止中の場合は開始)
else if (e.keyCode == 51 || e.keyCode == 99) {
if (!fade && !move) {
Change("fade", true);
Change("move", true);
}
else Change("both");
}
}
//動作
private function Change(_type:String, _value:Boolean = false):void {
//フェードイン(アウト) 停止
if (_type == "fade" && !_value) {
fade = false;
Tweener.removeTweens(Circle_mc, "alpha");
}
//フェードイン(アウト) 開始
else if (_type == "fade" && _value) {
fade = true;
Tweener.addTween(Circle_mc, {
alpha :1.0,
time :0.5
});
Tweener.addTween(Circle_mc, {
alpha :0.2,
delay :0.5,
time :0.5,
onComplete :Change,
onCompleteParams :["fade", true]
});
}
//x軸移動 停止
else if (_type == "move" && !_value) {
move = false;
Tweener.removeTweens(Circle_mc, "x");
}
//x軸移動 開始
else if (_type == "move" && _value) {
move = true;
Tweener.addTween(Circle_mc, {
x :stage.stageWidth - 100,
time :2.5
});
Tweener.addTween(Circle_mc, {
x :100,
delay :2.5,
time :2.5,
onComplete :Change,
onCompleteParams :["move", true]
});
}
//両方 停止
else if (_type == "both") {
fade = false;
move = false;
Tweener.removeTweens(Circle_mc, "alpha", "x");
}
}
}
}
Posted by tmdf|ActionScript
trackback
http://tmdf.net/blog/20101008_as3_removetweens.html/trackbackcomments(3)
tmdf.net | プロパティ毎にremoveTweens プラウザでプレビュー|2010.10.8 金曜日
[...] Go here to see the original: tmdf.net | プロパティ毎にremoveTweens By admin | category: オブジェクト, プロパティ | tags: オブジェクト, プロパティ | pbj_itdontmoveme.mov (video/quicktime オブジェクト) | F [...]
tmdf.net | プロパティ毎にremoveTweens|2010.10.8 金曜日
[...] More: tmdf.net | プロパティ毎にremoveTweens [...]
tmdf.net | プロパティ毎にremoveTweens しか〔~しか〕?これしかない|2010.10.10 日曜日
[...] is the original post: tmdf.net | プロパティ毎にremoveTweens DigInfo TV – 9軸ワイヤレスモーションセンサ&SDK – e-nuvo [...]