Tweensy - color

tweensy_7

TweensyでColorTransformのプロパティをアニメーションしてみる。ColorTransformオブジェクトを作ってそのColorTransformオブジェクトのプロパティをTweensyでTweenするイメージ。で、updateパラメータにそのColorTransformを適用するインスタンスを指定する。

  • ActionScript
  • TestTweensy_7.as
  • Source
package  {
	import com.flashdynamix.motion.Tweensy;
	import fl.motion.easing.Linear;
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.geom.ColorTransform;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;

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

		[Embed (source="fl_64.png")]
		private var SampleImage:Class;

		private var _bitmaps:Array;

		public function TestTweensy_7() {
			initBitmaps();
			initButton();
		}

		private function initBitmaps():void{
			_bitmaps = [];

			var texts:Array = [
				'redMultiplier: 0.5', 'greenMultiplier: 0.5', 'blueMultiplier: 0.5',
				'alphaMultiplier: 0.5', 'redOffset: 100', 'greenOffset: 100',
				'blueOffset: 100', 'alphaOffset: -100', 'color: 0x0099cc'
			];
			var textFormat:TextFormat = new TextFormat('_等幅', 10, 0xffffff);
			var i:int, bitmap:Bitmap, textField:TextField;
			for (i = 0; i < texts.length; i ++) {
				bitmap = new SampleImage();
				bitmap.x = 120 + 200 * Math.floor(i / 3);
				bitmap.y = 60 + (bitmap.height + 50) * (i % 3);
				addChild(bitmap);
				_bitmaps[i] = bitmap;

				textField = new TextField();
				textField.defaultTextFormat = textFormat;
				textField.autoSize = TextFieldAutoSize.RIGHT;
				textField.x = bitmap.x - textField.width - 10;
				textField.y = bitmap.y;
				textField.text = texts[i];
				addChild(textField);
			}
		}

		private function initButton():void {
			var button:Button = new Button();

			button.label = 'Tweensy.to()';
			button.addEventListener(MouseEvent.CLICK, onButtonClick);

			addChild(button);
		}

		private function onButtonClick(e:MouseEvent):void {
			Tweensy.to(new ColorTransform(), { redMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[0]);
			Tweensy.to(new ColorTransform(), { greenMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[1]);
			Tweensy.to(new ColorTransform(), { blueMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[2]);
			Tweensy.to(new ColorTransform(), { alphaMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[3]);
			Tweensy.to(new ColorTransform(), { redOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[4]);
			Tweensy.to(new ColorTransform(), { greenOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[5]);
			Tweensy.to(new ColorTransform(), { blueOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[6]);
			Tweensy.to(new ColorTransform(), { alphaOffset: -100 }, 3, Linear.easeNone, 1, _bitmaps[7]);

			// 色を指定してアニメーションする場合
			var colorTransform:ColorTransform = new ColorTransform();
			colorTransform.color = 0x0099cc;
			Tweensy.to(new ColorTransform(), colorTransform, 3, Linear.easeNone, 1, _bitmaps[8]);
		}


	}

}


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.Tweensy;
  3.     import fl.motion.easing.Linear;
  4.     import flash.display.Bitmap;
  5.     import flash.display.Sprite;
  6.     import flash.events.MouseEvent;
  7.     import flash.geom.ColorTransform;
  8.     import flash.text.TextField;
  9.     import flash.text.TextFieldAutoSize;
  10.     import flash.text.TextFormat;
  11.  
  12.     [SWF(backgroundColor = 0x000000, width = 600, height = 400, frameRate = 30)]
  13.     public class TestTweensy_7 extends Sprite {
  14.  
  15.         [Embed (source="fl_64.png")]
  16.         private var SampleImage:Class;
  17.  
  18.         private var _bitmaps:Array;
  19.  
  20.         public function TestTweensy_7() {
  21.             initBitmaps();
  22.             initButton();
  23.         }
  24.  
  25.         private function initBitmaps():void{
  26.             _bitmaps = [];
  27.  
  28.             var texts:Array = [
  29.                 'redMultiplier: 0.5', 'greenMultiplier: 0.5', 'blueMultiplier: 0.5',
  30.                 'alphaMultiplier: 0.5', 'redOffset: 100', 'greenOffset: 100',
  31.                 'blueOffset: 100', 'alphaOffset: -100', 'color: 0x0099cc'
  32.             ];
  33.             var textFormat:TextFormat = new TextFormat('_等幅', 10, 0xffffff);
  34.             var i:int, bitmap:Bitmap, textField:TextField;
  35.             for (i = 0; i < texts.length; i ++) {
  36.                 bitmap = new SampleImage();
  37.                 bitmap.x = 120 + 200 * Math.floor(i / 3);
  38.                 bitmap.y = 60 + (bitmap.height + 50) * (i % 3);
  39.                 addChild(bitmap);
  40.                 _bitmaps[i] = bitmap;
  41.  
  42.                 textField = new TextField();
  43.                 textField.defaultTextFormat = textFormat;
  44.                 textField.autoSize = TextFieldAutoSize.RIGHT;
  45.                 textField.x = bitmap.x - textField.width - 10;
  46.                 textField.y = bitmap.y;
  47.                 textField.text = texts[i];
  48.                 addChild(textField);
  49.             }
  50.         }
  51.  
  52.         private function initButton():void {
  53.             var button:Button = new Button();
  54.  
  55.             button.label = 'Tweensy.to()';
  56.             button.addEventListener(MouseEvent.CLICK, onButtonClick);
  57.  
  58.             addChild(button);
  59.         }
  60.  
  61.         private function onButtonClick(e:MouseEvent):void {
  62.             Tweensy.to(new ColorTransform(), { redMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[0]);
  63.             Tweensy.to(new ColorTransform(), { greenMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[1]);
  64.             Tweensy.to(new ColorTransform(), { blueMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[2]);
  65.             Tweensy.to(new ColorTransform(), { alphaMultiplier: 0.5 }, 3, Linear.easeNone, 1, _bitmaps[3]);
  66.             Tweensy.to(new ColorTransform(), { redOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[4]);
  67.             Tweensy.to(new ColorTransform(), { greenOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[5]);
  68.             Tweensy.to(new ColorTransform(), { blueOffset: 100 }, 3, Linear.easeNone, 1, _bitmaps[6]);
  69.             Tweensy.to(new ColorTransform(), { alphaOffset: -100 }, 3, Linear.easeNone, 1, _bitmaps[7]);
  70.  
  71.             // 色を指定してアニメーションする場合
  72.             var colorTransform:ColorTransform = new ColorTransform();
  73.             colorTransform.color = 0x0099cc;
  74.             Tweensy.to(new ColorTransform(), colorTransform, 3, Linear.easeNone, 1, _bitmaps[8]);
  75.         }
  76.  
  77.  
  78.     }
  79.  
  80. }
  81.  
  82.  
  83. import flash.display.Graphics;
  84. import flash.display.Sprite;
  85. import flash.events.MouseEvent;
  86. import flash.filters.BevelFilter;
  87. import flash.text.TextField;
  88. import flash.text.TextFieldAutoSize;
  89. import flash.text.TextFormat;
  90.  
  91. internal class Button extends Sprite {
  92.  
  93.     private var _textField:TextField;
  94.  
  95.     public function get label():String { return _textField.text; }
  96.     public function set label(value:String):void {
  97.         _textField.text = value;
  98.         updateFill();
  99.     }
  100.  
  101.     public function Button() {
  102.         _textField = new TextField();
  103.         _textField.defaultTextFormat = new TextFormat('_等幅', 10, 0x333333, true);
  104.         _textField.autoSize = TextFieldAutoSize.LEFT;
  105.         _textField.x = 8;
  106.         _textField.y = 4;
  107.         addChild(_textField);
  108.  
  109.         filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
  110.         buttonMode = true;
  111.         mouseChildren = false;
  112.         addEventListener(MouseEvent.MOUSE_UP, onButtonMouseUp);
  113.         addEventListener(MouseEvent.MOUSE_DOWN, onButtonMouseDown);
  114.     }
  115.  
  116.     private function onButtonMouseUp(e:MouseEvent):void {
  117.         var button:Sprite = e.currentTarget as Sprite;
  118.  
  119.         button.filters = null;
  120.         button.filters = [new BevelFilter(1, 45, 0xdddddd, 0xbbbbbb)];
  121.     }
  122.  
  123.     private function onButtonMouseDown(e:MouseEvent):void {
  124.         var button:Sprite = e.currentTarget as Sprite;
  125.  
  126.         button.filters = null;
  127.         button.filters = [new BevelFilter(1, 225, 0xdddddd, 0xbbbbbb)];
  128.     }
  129.  
  130.     private function updateFill():void {
  131.         graphics.clear();
  132.         graphics.beginFill(0xCCCCCC);
  133.         graphics.drawRect(0, 0, _textField.textWidth + 20, _textField.textHeight + 14);
  134.         graphics.endFill();
  135.     }
  136.  
  137. }


About this entry