【问题标题】:adding variables to movieClip in flash to be used in Flash builder将变量添加到 flash 中的movieClip 以在 Flash builder 中使用
【发布时间】:2012-08-13 08:42:33
【问题描述】:

我在 Flash Professional 中创建了一个带有多个矩形的 .fla。每个矩形都有不同的颜色,并且是一个单独的影片剪辑。然后,我有一个影片剪辑 (RectContainer),其中包含其中的所有矩形,并且我添加了“AS Linkage”,因此我可以在 Flash 构建器中创建这个容器类的实例(在我导出为 . swc)。

我的问题是这样的。如果我想为每个矩形添加一个变量,我如何从 Flash builder 中读取这个值。

例如,我想将字符串变量添加到带有单词“red”的红色矩形,带有“blue”的蓝色矩形等。

然后我想将侦听器添加到矩形,所以当它们被点击时,我可以获得被点击的矩形的颜色字符串。

for (var i:int = 0; i < rectContainer.numChildren; i++) {
    rectContainer.getChildAt(i).addEventListener(MouseEvent.MOUSE_DOWN, fl_Click);
}

function fl_click(event:MouseEvent):void
{
    event.currentTarget. ???
}

【问题讨论】:

    标签: actionscript-3 flash actionscript flash-builder


    【解决方案1】:

    您应该为您的矩形创建一个自定义类来继承(或在自定义类中绘制您的矩形并完全放弃 .fla)。然后,您可以提供一个公共属性来保存您想要的值,创建任何常用函数,例如对颜色标签执行某些操作的单击处理程序。

    public class MyRectangle extends Sprite {
        public var label:String;
    
        public function MyRectangle(){
            this.addEventListener(MouseEvent.CLICK, clickHandler,false,0,true);
        }
    
        private function clickHandler(e:MouseEvent):void {
            trace(label);
        }
    }
    

    对于您的矩形,如果在 Flash IDE 中,请在其符号属性中将您的自定义类作为基类。

    【讨论】:

      【解决方案2】:

      首先,在flash中你必须像图片一样设置名称。

      您可以访问以下喜欢它。

      不要使用currentTarget,因为存在潜在风险。如果子对象重叠,您的期望可能会有所不同。欲了解更多信息,请谷歌。

      正是您需要了解targetcurrentTarget 之间的区别。这是一个非常重要的概念。


      public function Constructor()
      {
         var container:RectContainer = new RectContainer();
         this.addEvent(container);
         var i:int = 0;
         while(i<container.numChildren)
         {
              container.addEventListener(MouseEvent.CLICK, onClick);
              i++;
         }
      }
      
      private function onClick(e:MouseEvent):void
      {
          var mc:MovieClip = e.target as MovieClip;
      
          if(mc.name == "myCircle1")
          {
      
          }
          else if(mc.name == "myCircle2")
          {
      
          }
          else if(mc.name == "myCircle3")
          {
      
          }
      
          trace(mc.name);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 2013-01-01
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        相关资源
        最近更新 更多