【问题标题】:Apply EventListner on Multiple MovieClip Instances在多个影片剪辑实例上应用事件侦听器
【发布时间】:2017-06-20 05:48:41
【问题描述】:

我在舞台上有 10 个名为“mc1,mc2,mc3....”的影片剪辑。我想对所有应用一个事件列表器,我试图使用变量调用,但是当我可以直接使用实例名称时它不起作用。

谁能帮助我如何在多个movieclcip实例上应用一个函数

//var mc ="mc1";
var mc = this["mc" + 1];

mc.addEventListener(MouseEvent.CLICK, testFunction);

function testFunction(e:MouseEvent):void
{
    trace("Seconds elapsed: "+ e.target.name);
}

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    如果您的影片剪辑被命名为 mc1mc2 等,您可以像这样循环它们:

    for(var i = 1; i <= 10; i++) {
       this["mc" + i].addEventListener(MouseEvent.CLICK, testFunction);
    }
    

    请记住,如果名称发生更改,像这样通过名称访问影片剪辑可能会导致运行时出现问题。它在编译时也不会给你任何错误,因为这一切都是在运行时检查和执行的。所以调试这可能会很痛苦。

    【讨论】:

    • 感谢它的工作,但它也给出了这个错误 TypeError: Error #1010: A term is undefined and has no properties。在 Test_fla::MainTimeline/frame1()[Test_fla.MainTimeline::frame1:12] 在运行时::ContentPlayer/loadInitialContent() 在运行时::ContentPlayer/playRawContent() 在运行时::ContentPlayer/playContent() 在运行时:: AppRunner/run() at ADLAppEntry/run() at global/runtime::ADLEntry()
    • 谢谢 jens 我已经解决了我在舞台上丢失了一个对象的问题。
    • 这里的小修正:应该是i &lt;= 10。否则,您的代码不包含第 10 个元素 mc10
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2012-04-13
    • 2014-01-04
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多