如何将属性附加到动态创建的动画片段

时间:2011-03-15 16:12:37

标签: actionscript-3 dynamic loader

您好我尝试通过点击动态创建的Moviclip来获取属性。

function finishLoading(evt : Event):void {

// Handle XML Settings
XML.ignoreComments=true;
XML.ignoreWhitespace=true;

// Attach XML Data into XML Var
fXML=new XML(evt.target.data);

// Iterate XML response and build Preview List
for (var i:Number=0; i<fXML.mov.length(); i++) {

    var sTmpTitle=fXML.mov[i].mov_title.text();
    var sTmpSrc=fXML.mov[i].mov_src.text();
    var sTmpThumb=fXML.mov[i].mov_thumb.text();
    var sTmpOrder=parseInt(fXML.mov[i].mov_list_order.text());
    var iPosY:Number = (sTmpOrder!=1)?(sTmpOrder-1)*105:0;

    var sTmpLoader:Loader = new Loader();
        sTmpLoader.load(new URLRequest(sTmpThumb));

    var oTmpMc:MovieClip = new MovieClip();
        oTmpMc.addChild(sTmpLoader);
        oTmpMc.y=iPosY;
        oTmpMc.x=0;
        oTmpMc.mov_src = sTmpSrc;
        oTmpMc.addEventListener(MouseEvent.CLICK, function()
                                                    {
                                                        trace(this.mov_src);
                                                    });

        mc_slider.addChild(oTmpMc);
}

}

创建MOVIECLPIP和处理事件运行良好但我不知道如何通过单击剪辑可以访问属性mov_src。

如何使其发挥作用。

谢谢

1 个答案:

答案 0 :(得分:0)

首先,你不应该为动画片段添加动态属性,这是AS2的一个坏习惯。您应该扩展MovieClip类并添加所需的属性。无论如何,你可以通过外部化你的回调来做你想做的事情:

...
        oTmpMc.addEventListener(MouseEvent.CLICK, onClipClicked);

        mc_slider.addChild(oTmpMc);
}

private function onClipClicked(e:Event):void
{
        var clip:MovieClip = e.currentTarget as MovieClip;
        trace(clip.mov_src);
}