【问题标题】:2 MovieClips with the same Instance Name2 个具有相同实例名称的影片剪辑
【发布时间】:2012-02-20 16:38:33
【问题描述】:

我在时间线上有 2 个相同的 Movieclip 副本,我需要它们都做完全相同的事情,所以我想我应该给它们相同的实例名称。

我在舞台上有一个事件侦听器,它侦听鼠标单击,然后使用 switch 语句检查已单击的内容,但 switch 语句仅拾取影片剪辑的一个实例,另一个作为默认值出现.

我主要要问的是,是否可以在时间轴上使用相同的实例名称制作影片剪辑?

public function Main() {
    stage.addEventListener(MouseEvent.CLICK, doStuff);
}

public function doStuff(e:MouseEvent):void {
    switch (e.target) {
        case myMC1 :
            //do stuff
            break;
        case myMC2 :
            //do stuff
            break;
        case myMC3 :
            //do stuff
            break;
        default :
            //do stuff
    }
}

【问题讨论】:

    标签: flash actionscript-3 adobe instance movieclip


    【解决方案1】:

    请改用 e.currentTarget。
    e.target 将为您提供调度事件的对象,该对象可能是您的 MovieCLip 的子对象

    【讨论】:

      【解决方案2】:

      给实例两个不同的名称(永远不要对两个对象使用相同的名称,真的:))并以这种方式更改 switch 语句:

       public function doStuff(e:MouseEvent):void {
      switch (e.target) {
          case myMC1 :
          case myMC2 :
              //do stuff
              break;
          case myMC3 :
              //do stuff
              break;
          default :
              //do stuff
      }
      }
      

      通过这种方式格式化,您可以针对两种不同的情况执行相同的代码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        • 2010-10-28
        相关资源
        最近更新 更多