0

AS3 を使用して Flash で写真のスタックを作成するチュートリアルを見つけました ( http://designreviver.com/tutorials/create-an-interactive-stack-of-photos/ )。

私は写真スタックの動的 XML バージョンを作成しようとしてきましたが、問題があります (明らかに :)

Polaroid というクラスがあり、次のようにループを使用して複数のインスタンスをステージに追加します。

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

次に、2 つの関数を使用して写真をスライドさせ、そのインデックスを変更して、ポラロイドの他のすべてのインスタンスの背後に配置します。

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

target の代わりに currentTarget を試してください。

于 2009-11-07T11:40:58.680 に答える