TweensySequence - push
Tweensyで連続したアニメーションをしたいけど、それらを一連のトゥィーンとして管理したい。そんな時に使うのがTweensySequenceクラス。
アニメーションしたい順にTweensySequence.push()して、シーケンスに登録する。で、TweensySequence.start()で開始する。
- 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();
}
} - 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.<int> = new Vector.<int>(8, true);
- var data:Vector.<number> = new Vector.<number>(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();
- }
- }
About this entry
You’re currently reading “TweensySequence - push,” an entry on jp.ferv.blog
- Published:
- Thu, May 21st, 2009 at 12:26 AM
- Author:
- dsk
- Category:
- Web
- Tags:
- ActionScript 3.0, Tweensy
No comments
Jump to comment form | comments rss | trackback uri