2017-05-22 17 views
1

我试图将卡移动到我的用户他们是三个成员在这里我有九张卡在这里我的代码below.I使用tweenlite移动前三张卡成功移动然后其余的卡如何移动到用户。Tweenlite在多个对象

import com.greensock.*; 
import com.greensock.easing.*; 
import flash.events.MouseEvent; 

click_mc.addEventListener(MouseEvent.CLICK, UserOne); 



function UserOne(evt:MouseEvent):void 
{ 

    TweenMax.to(joker_mc, .5, { x:598.25, y:164.45 , onComplete:UserTwo});  
} 

function UserTwo():void 
{ 
    TweenLite.to(king_mc, .5, { x:316.50, y:267.90, onComplete:UserThree}); 

} 

function UserThree():void 
{ 
    TweenLite.to(queen_mc, .5, { x:39, y:172}); 

} 

任何人都知道请详细说明这一个。

回答

2

没有必要为每个卡创建的独立的代码,它们都是一样的。创建 + X + Ÿ条目的阵列,并与项目合作。

import com.greensock.*; 
import com.greensock.easing.*; 
import flash.events.MouseEvent; 

var currentEntry:int = -1; 
var aList:Array = 
[ 
    {card:joker_mc, x:598.25, y:164.45}, 
    {card:king_mc, x:316.50, y:267.90}, 
    {card:queen_mc, x:39, y:172}, 

    // ... 
    // and so on 
]; 

click_mc.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(e:MouseEvent):void 
{ 
    // Unsubscribe to avoid the mess with second click. 
    click_mc.removeEventListener(MouseEvent.CLICK, onClick); 

    // Start process. 
    moveNext(); 
} 

function moveNext():void 
{ 
    currentEntry++; 

    // Stop the process if all the cards have been moved. 
    if (currentEntry >= aList.length) return; 

    // Get the entry. 
    var anEntry:Object = aList[currentEntry]; 

    // Move the card. 
    TweenLite.to(anEntry['card'], .5, {x:anEntry['x'], y:anEntry['y'], onComplete:moveNext}); 
} 
+0

真的很非常感谢你对它的好作品 –

+0

很棒的回答Organis。在这种情况下如何使用TimeLineLite(https://greensock.com/timelinelite-as)?对动画排序来说,这可能是最好的选择。干杯。 –

+0

@GurtejSingh不知道,对不起。我有我自己的补间和场景播放类,所以我不打扰第三方框架。 – Organis