【问题标题】:howto atach properties to dynamic created moviclips如何将属性附加到动态创建的影片剪辑
【发布时间】:2011-03-15 16:12:37
【问题描述】:

您好,我尝试通过单击动态创建的 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。

怎样做才能让它发挥作用。

谢谢

【问题讨论】:

    标签: actionscript-3 dynamic loader


    【解决方案1】:

    首先,您不应该向影片剪辑添加动态属性,这是 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2013-12-22
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多