2011-08-24 57 views
0

我是新來的Flex,並試圖將一個純Flash/AS3 card game移植到Flex 4.5。如何在Flex 4.5應用程序中使用Tween for MovieClips?

它的工作原理主要是不錯,但我缺少一些益智部分有:

我創建代表一副牌(這是精靈或影片剪輯的數組)基於UIComponent上的自定義組件:

enter image description here

在原來的純閃存/ AS3遊戲我用吐溫的3張卡在桌子 - 展示遊戲用戶,誰已經把該卡(按滑準他們往打表中):

import fl.transitions.*; 
import fl.transitions.easing.*; 

public class Deck extends UIComponent { 
    private var _card:Array = new Array(3); 
    private var _tween:Array = new Array(3); 
      .... 

    override protected function createChildren():void { 
     _tween[YOU] = new Tween(_card[0], 'y', Regular.easeOut, _card[0].y + 40, _card[0].y, .5, true); 
     _tween[LEFT] = new Tween(_card[1], 'x', Regular.easeOut, _card[1].x - 40, _card[1].x, .5, true); 
     _tween[RIGHT] = new Tween(_card[2], 'x', Regular.easeOut, _card[2].x + 40, _card[2].x, .5, true); 
      .... 

但是Flash Builder 4.5似乎並不知道fl.transitions。*軟件包呢?

有沒有人有關於如何在這裏使用Tween的建議?像我寫的其餘部分(我自定義的Flex組件,移動卡片 - 周圍的精靈等等)效果不錯。只有吐溫線需要評論。

謝謝! Alex

回答

0

我的第一個下意識的反應一直flash.swc(由Flash CS專業版提供)添加到Flex構建路徑,然後:

import fl.transitions.*; 
import fl.transitions.easing.*; 

可以重新使用。

enter image description here

但在長期,我可能會寫我自己的函數來移動撲克牌和Event.ENTER_FRAME運行它。因爲我不想將Tweener或Tweenlite庫僅僅包含在卡片上。

 _tween[0] = _card[0].y; 
     _tween[1] = _card[1].x; 
     _tween[2] = _card[2].x; 
       .... 
     _card[0].y = _tween[0] + 20; 
     addEventListener(Event.ENTER_FRAME, slideCardYou); 

     _card[1].x = _tween[1] - 20; 
     addEventListener(Event.ENTER_FRAME, slideCardLeft); 

     _card[2].x = _tween[2] + 20; 
     addEventListener(Event.ENTER_FRAME, slideCardRight); 
       .... 

    private function slideCardYou(event:Event):void { 
     if (_card[0].y-- < _tween[0]) 
      removeEventListener(Event.ENTER_FRAME, slideCardYou); 
    } 

    private function slideCardLeft(event:Event):void { 
     if (_card[1].x++ > _tween[1]) 
      removeEventListener(Event.ENTER_FRAME, slideCardLeft); 
    } 

    private function slideCardRight(event:Event):void { 
     if (_card[2].x-- < _tween[2]) 
      removeEventListener(Event.ENTER_FRAME, slideCardRight); 
    } 

而且我已經看了mx.effects.Tween和spark.effects.Animate但他們似乎更適合於UIComponents的,而不是精靈在我的情況。

0

請看Google Code上的Tweener類。有了它,您可以指定和對象,以及其屬性及其所需值的映射以及時間,並且可以將這些屬性從當前值調整爲期望值。

Tweener.addTween(yourCard, {y:50, time:1});//for a 1 second tween 
+0

好的,謝謝你的指針 –

相關問題