多个对象中的Tweenlite

时间:2017-05-22 13:10:51

标签: actionscript-3 flash actionscript air

我试图将卡片移动到我的用户他们是三个成员我在这里有九张卡片我的代码在下面。我使用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} );

}

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

1 个答案:

答案 0 :(得分:2)

没有必要为每张卡创建单独的代码,它们都是相似的。使用 + x + y 条目创建一个数组,并使用这些条目。

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});
}