プロパティ毎にremoveTweens

2010.10.8 金曜日

TweenerのremoveTweensについてあまり書かれていないのでメモ。オブジェクトにaddTweenしたプロパティの一部だけを止めたい場合は、「Tweener.removeTweens(オブジェクト, プロパティ);」といった書き方をします。プロパティ名はStringで指定し、複数ある場合はカンマ区切りで続けて書きます。プロパティ部分を省略するとすべてトゥイーンが止まります。

修正 2010.10.25
一度もaddTweenせずにremoveTweensをプロパティ指定して呼びだすと、「TypeError: Error #1009: ~~~」が発生します。起動時に何でもいいのでオブジェクトにaddTweenしておくとエラーを回避できます。

This movie requires Flash Player 9

//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|

trackback

http://tmdf.net/blog/20101008_as3_removetweens.html/trackback

comments(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 [...]

POST NEW COMMENT

  • name:*
  • e-mail:*

    The content of this field is kept private and will not be shown publicly.
  • website:
  • comment:*

    Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code>
    Lines and paragraphs break automatically.

Photo

PROFILE

森田 考陽 [Takaaki Morita]
Twitter: @tmdf
Other: mtdf.net

Designer / Programmer

RECENT POSTS

MONTHLY ARCHIVES