TweensySequence - push

Tweensyで連続したアニメーションをしたいけど、それらを一連のトゥィーンとして管理したい。そんな時に使うのがTweensySequenceクラス。

アニメーションしたい順にTweensySequence.push()して、シーケンスに登録する。で、TweensySequence.start()で開始する。

TestTweensy_12.swf

  • ActionScript
  • TestTweensy_12.as
  • Source
package  {
	import com.flashdynamix.motion.TweensySequence;
	import fl.motion.easing.Elastic;
	import fl.motion.easing.Quadratic;
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.MouseEvent;

	[SWF(backgroundColor = 0x000000, width = 600, height = 400, frameRate = 30)]
	public class TestTweensy_12 extends Sprite {

		private var _arrow:Sprite;
		private var _tweensySequence:TweensySequence;
		private var _button:Button;

		public function TestTweensy_12() {
			initArrow();
			initTweensySequence();
			initButton();

			startTweensySequence();
		}

		private function initArrow():void{
			_arrow = createArrow();
			_arrow.x = 50;
			_arrow.y = 50;
			addChild(_arrow);
		}

		private function createArrow():Sprite {
			var arrow:Sprite = new Sprite();
			var graphics:Graphics = arrow.graphics;
			var commands:Vector. = new Vector.(8, true);
			var data:Vector. = new Vector.(16, true);

			commands[0] = 1;
			commands[1] = commands[2] = commands[3] = commands[4] = commands[5] = commands[6] = commands[7] = 2;
			data[0] = 10; data[1] = 0;
			data[2] = 0; data[3] = -10;
			data[4] = 0; data[5] = -5;
			data[6] = -10; data[7] = -5;
			data[8] = -10; data[9] = 5;
			data[10] = 0; data[11] = 5;
			data[12] = 0; data[13] = 10;
			data[14] = 10; data[15] = 0;

			graphics.beginFill(0x0099cc);
			graphics.drawPath(commands, data);
			graphics.endFill();

			return arrow;
		}

		private function initTweensySequence():void{
			_tweensySequence = new TweensySequence();

			_tweensySequence.push(_arrow, { x: 550 }, 1, Quadratic.easeOut);
			_tweensySequence.push(_arrow, { rotation: 90 }, 1, Elastic.easeOut);
			_tweensySequence.push(_arrow, { y: 350 }, 1, Quadratic.easeOut);
			_tweensySequence.push(_arrow, { rotation: -180 }, 1, Elastic.easeOut);
			_tweensySequence.push(_arrow, { x: 50 }, 1, Quadratic.easeOut);
			_tweensySequence.push(_arrow, { rotation: -90 }, 1, Elastic.easeOut);
			_tweensySequence.push(_arrow, { y: 50 }, 1, Quadratic.easeOut);
			_tweensySequence.push(_arrow, { rotation: 0 }, 1, Elastic.easeOut, 0, 1);

			_tweensySequence.onComplete = onTweensySequenceComplete;
		}

		private function onTweensySequenceComplete():void{
			_tweensySequence.stop();
			_tweensySequence.replay();
		}

		private function initButton():void{
			_button = new Button();
			_button.label = 'pause()';
			_button.addEventListener(MouseEvent.CLICK, onButtonClick);
			addChild(_button);
		}

		private function startTweensySequence():void {
			_tweensySequence.start();
		}

		private function onButtonClick(e:MouseEvent):void {
			if (_tweensySequence.paused) {
				_tweensySequence.resume();
				_button.label = 'pause()';
			} else {
				_tweensySequence.pause();
				_button.label = 'resume()';
			}
		}


	}

}


import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.filters.BevelFilter;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

internal class Button extends Sprite {

	private var _textField:TextField;

	public function get label():String { return _textField.text; }
	public function set label(value:String):void {
		_textField.text = value;
		updateFill();
	}

	public function Button() {
		_textField = new TextField();
		_textField.defaultTextFormat = new TextFormat('_等幅', 10, 0x333333, true);
		_textField.autoSize = TextFieldAutoSize.LEFT;
		_textField.x = 8;
		_textField.y = 4;
		addChild(_textField);

		filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
		buttonMode = true;
		mouseChildren = false;
		addEventListener(MouseEvent.MOUSE_UP, onButtonMouseUp);
		addEventListener(MouseEvent.MOUSE_DOWN, onButtonMouseDown);
	}

	private function onButtonMouseUp(e:MouseEvent):void {
		var button:Sprite = e.currentTarget as Sprite;

		button.filters = null;
		button.filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
	}

	private function onButtonMouseDown(e:MouseEvent):void {
		var button:Sprite = e.currentTarget as Sprite;

		button.filters = null;
		button.filters = [new BevelFilter(1, 225, 0xdddddd, 0xbbbbbb)];
	}

	private function updateFill():void {
		graphics.clear();
		graphics.beginFill(0xCCCCCC);
		graphics.drawRect(0, 0, _textField.textWidth + 20, _textField.textHeight + 14);
		graphics.endFill();
	}

}
  1. package  {
  2.     import com.flashdynamix.motion.TweensySequence;
  3.     import fl.motion.easing.Elastic;
  4.     import fl.motion.easing.Quadratic;
  5.     import flash.display.Graphics;
  6.     import flash.display.Sprite;
  7.     import flash.events.MouseEvent;
  8.  
  9.     [SWF(backgroundColor = 0x000000, width = 600, height = 400, frameRate = 30)]
  10.     public class TestTweensy_12 extends Sprite {
  11.  
  12.         private var _arrow:Sprite;
  13.         private var _tweensySequence:TweensySequence;
  14.         private var _button:Button;
  15.  
  16.         public function TestTweensy_12() {
  17.             initArrow();
  18.             initTweensySequence();
  19.             initButton();
  20.  
  21.             startTweensySequence();
  22.         }
  23.  
  24.         private function initArrow():void{
  25.             _arrow = createArrow();
  26.             _arrow.x = 50;
  27.             _arrow.y = 50;
  28.             addChild(_arrow);
  29.         }
  30.  
  31.         private function createArrow():Sprite {
  32.             var arrow:Sprite = new Sprite();
  33.             var graphics:Graphics = arrow.graphics;
  34.             var commands:Vector.<int> = new Vector.<int>(8, true);
  35.             var data:Vector.<number> = new Vector.<number>(16, true);
  36.  
  37.             commands[0] = 1;
  38.             commands[1] = commands[2] = commands[3] = commands[4] = commands[5] = commands[6] = commands[7] = 2;
  39.             data[0] = 10; data[1] = 0;
  40.             data[2] = 0; data[3] = -10;
  41.             data[4] = 0; data[5] = -5;
  42.             data[6] = -10; data[7] = -5;
  43.             data[8] = -10; data[9] = 5;
  44.             data[10] = 0; data[11] = 5;
  45.             data[12] = 0; data[13] = 10;
  46.             data[14] = 10; data[15] = 0;
  47.  
  48.             graphics.beginFill(0x0099cc);
  49.             graphics.drawPath(commands, data);
  50.             graphics.endFill();
  51.  
  52.             return arrow;
  53.         }
  54.  
  55.         private function initTweensySequence():void{
  56.             _tweensySequence = new TweensySequence();
  57.  
  58.             _tweensySequence.push(_arrow, { x: 550 }, 1, Quadratic.easeOut);
  59.             _tweensySequence.push(_arrow, { rotation: 90 }, 1, Elastic.easeOut);
  60.             _tweensySequence.push(_arrow, { y: 350 }, 1, Quadratic.easeOut);
  61.             _tweensySequence.push(_arrow, { rotation: -180 }, 1, Elastic.easeOut);
  62.             _tweensySequence.push(_arrow, { x: 50 }, 1, Quadratic.easeOut);
  63.             _tweensySequence.push(_arrow, { rotation: -90 }, 1, Elastic.easeOut);
  64.             _tweensySequence.push(_arrow, { y: 50 }, 1, Quadratic.easeOut);
  65.             _tweensySequence.push(_arrow, { rotation: 0 }, 1, Elastic.easeOut, 0, 1);
  66.  
  67.             _tweensySequence.onComplete = onTweensySequenceComplete;
  68.         }
  69.  
  70.         private function onTweensySequenceComplete():void{
  71.             _tweensySequence.stop();
  72.             _tweensySequence.replay();
  73.         }
  74.  
  75.         private function initButton():void{
  76.             _button = new Button();
  77.             _button.label = 'pause()';
  78.             _button.addEventListener(MouseEvent.CLICK, onButtonClick);
  79.             addChild(_button);
  80.         }
  81.  
  82.         private function startTweensySequence():void {
  83.             _tweensySequence.start();
  84.         }
  85.  
  86.         private function onButtonClick(e:MouseEvent):void {
  87.             if (_tweensySequence.paused) {
  88.                 _tweensySequence.resume();
  89.                 _button.label = 'pause()';
  90.             } else {
  91.                 _tweensySequence.pause();
  92.                 _button.label = 'resume()';
  93.             }
  94.         }
  95.  
  96.  
  97.     }
  98.  
  99. }
  100.  
  101.  
  102. import flash.display.Graphics;
  103. import flash.display.Sprite;
  104. import flash.events.MouseEvent;
  105. import flash.filters.BevelFilter;
  106. import flash.text.TextField;
  107. import flash.text.TextFieldAutoSize;
  108. import flash.text.TextFormat;
  109.  
  110. internal class Button extends Sprite {
  111.  
  112.     private var _textField:TextField;
  113.  
  114.     public function get label():String { return _textField.text; }
  115.     public function set label(value:String):void {
  116.         _textField.text = value;
  117.         updateFill();
  118.     }
  119.  
  120.     public function Button() {
  121.         _textField = new TextField();
  122.         _textField.defaultTextFormat = new TextFormat('_等幅', 10, 0x333333, true);
  123.         _textField.autoSize = TextFieldAutoSize.LEFT;
  124.         _textField.x = 8;
  125.         _textField.y = 4;
  126.         addChild(_textField);
  127.  
  128.         filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
  129.         buttonMode = true;
  130.         mouseChildren = false;
  131.         addEventListener(MouseEvent.MOUSE_UP, onButtonMouseUp);
  132.         addEventListener(MouseEvent.MOUSE_DOWN, onButtonMouseDown);
  133.     }
  134.  
  135.     private function onButtonMouseUp(e:MouseEvent):void {
  136.         var button:Sprite = e.currentTarget as Sprite;
  137.  
  138.         button.filters = null;
  139.         button.filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
  140.     }
  141.  
  142.     private function onButtonMouseDown(e:MouseEvent):void {
  143.         var button:Sprite = e.currentTarget as Sprite;
  144.  
  145.         button.filters = null;
  146.         button.filters = [new BevelFilter(1, 225, 0xdddddd, 0xbbbbbb)];
  147.     }
  148.  
  149.     private function updateFill():void {
  150.         graphics.clear();
  151.         graphics.beginFill(0xCCCCCC);
  152.         graphics.drawRect(0, 0, _textField.textWidth + 20, _textField.textHeight + 14);
  153.         graphics.endFill();
  154.     }
  155.  
  156. }


About this entry