2011-08-24 25 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

好的,谢谢你的指针 –

相关问题