AS3S.ORG

ACTIONSCRIPT 3.0 SOURCES

Proxy型Tweenライブラリ ProxyTween

対象オブジェクトのプロパティを直接変更する感覚でトゥイーンが実現できる
Proxy型Tweenライブラリ ProxyTween ver.0.1を公開しました。

大量のオブジェクトを動かしたり、複雑なトゥイーンには向きませんが、
ボタンのロールオーバー時のちょっとした演出などを簡単に実現できます。

今のところ、Tween関数としては、
・Tweener準拠の一般的なRobert Penner系
・org.as3s.Tween準拠の物理的なイージング
・ユーザー定義のカスタム関数
をサポートしています。

ダウンロード

Proxy型Tweenライブラリ ProxyTween ver.0.1

一番簡単な使い方

mct = new ProxyTween(mc);
mct.x = 200;

動かしたい対象のプロパティを設定する代わりに、Proxyのプロパティを設定するだけです。

Sample Code 1 (Click)

クリックイベントでProxyのx,yにマウス座標を設定しています。

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
   
    import org.as3s.ProxyTween;
   
    [SWF(width='700',height='300',backgroundColor='0xeeeeee',frameRate='60')]
    public class ProxyTweenSample1 extends Sprite
    {
        private var sp:Sprite;
        private var spt:ProxyTween;
       
        public function ProxyTweenSample1()
        {
            //Target Object
            sp = new Sprite();
            sp.graphics.beginFill(0x333333);
            sp.graphics.drawRect(-50,-50,100,100);
            sp.graphics.endFill();
            sp.x = 350;
            sp.y = 150;
            addChild(sp);
           
            spt = new ProxyTween(sp, ProxyTween.ELASTIC);
            //spt = new ProxyTween(sp, ProxyTween.EASE_IN_OUT_QUAD, 60);
           
            spt.addEventListener(ProxyTween.COMPLETE, onTweenComplete);
           
            stage.addEventListener(MouseEvent.CLICK, onClick);
        }
       
        private function onClick(event:MouseEvent):void {
            spt.x = event.stageX;
            spt.y = event.stageY;
        }
       
        private function onTweenComplete(event:Event):void {
            trace("Complete!");
        }
       
    }
}

Sample Code 2 (RollOver/RollOut)

ロールオーバー/アウトイベントでProxyのalphaを変更しています。

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
   
    import org.as3s.ProxyTween;
   
    [SWF(width='700',height='300',backgroundColor='0xeeeeee',frameRate='60')]
    public class ProxyTweenSample2 extends Sprite
    {
        private var sp:Sprite;
        private var spt:ProxyTween;
        private var elastic:ProxyTween;
       
        public function ProxyTweenSample2()
        {
            //Target Object
            sp = new Sprite();
            sp.graphics.beginFill(0x333333);
            sp.graphics.drawRect(-50,-50,100,100);
            sp.graphics.endFill();
            sp.x = 350;
            sp.y = 150;
            sp.alpha = 0.2;
            addChild(sp);
           
            spt = new ProxyTween(sp);
           
            sp.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
            sp.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
        }
       
        private function onMouseOver(event:MouseEvent):void {
            spt.alpha = 1;
        }
       
        private function onMouseOut(event:MouseEvent):void {
            spt.alpha = 0.2;
        }
               
    }
}

Written by admin

July 31st, 2009 at 6:11 pm

Posted in Tween

Leave a Reply