0

我找到了一个使用 AS3 ( http://designreviver.com/tutorials/create-an-interactive-stack-of-photos/ )在 Flash 中创建一堆照片的教程。

我一直在尝试制作照片堆栈的动态 XML 版本,但我遇到了问题(显然 :)

我有一个名为宝丽来的类,我使用循环将它的多个实例添加到舞台上,如下所示:

function processXML(e:Event):void {
    var myXML:XML=new XML(e.target.data);

    my_images=myXML.IMAGE;
    my_total=my_images.length();
    photoCount=my_total;

    for (var i:Number = 1; i <= my_total; i++) {
        imageNo=i;
        this.addChild(new polaroid  ).name="photo"+imageNo;
        this.getChildByName("photo"+imageNo).addEventListener(MouseEvent.MOUSE_DOWN, photoSlideOut);
        this.getChildByName("photo"+imageNo).rotation =  Math.floor(Math.random()*(rotationRange*2))-rotationRange;
    }
}

然后我使用两个函数将照片滑出并更改其索引,使其位于所有其他宝丽来实例的后面。

function photoSlideOut(e:Event):void {
    e.target.parent.setChildIndex(e.target, e.target.parent.numChildren - 1);
    Tweener.addTween(e.target, {x: photoDestX, time: speed, transition: easeType, onComplete:photoSlideIn, onCompleteParams:[e.target]});
    Tweener.addTween(e.target, {rotation: Math.floor(Math.random()*(rotationRange*2))-rotationRange, time: speed*2, transition: easeType});
}
function photoSlideIn(p:MovieClip):void {
    p.parent.setChildIndex(p, 0);
    Tweener.addTween(p, {x: photoOriginX, time: speed, transition: easeType});
}

photoSlideOut 似乎工作正常,photoslidein 中的补间正在工作 - 我似乎无法更改已点击的宝丽来实例的子索引。

有人知道我在这里哪里出错了吗?

任何帮助将非常感激。

4

1 回答 1

0

尝试 currentTarget 而不是 target。

于 2009-11-07T11:40:58.680 回答