【问题标题】:How do I reference Flash IDE instances from within Flash Builder如何从 Flash Builder 中引用 Flash IDE 实例
【发布时间】:2013-06-21 15:34:48
【问题描述】:

假设我有一个电影剪辑“游戏板”,它由其他几个电影剪辑组成,如“计数器”和“消息框”。 这些子剪辑中的每一个又具有文本字段(“myScore”)或图形符号等实例。

这些类中的每一个都很复杂,因为它们响应事件/信号,所以我需要引用它们

我目前的方法是在 FlashBuilder 中具有 mypackagename.Counter.as 的所有剪辑(例如 mypackagename.Counter)上设置导出设置。然后,一旦将父级(游戏板)添加到舞台上,我会递归所有子级并按索引访问(我知道.. 非常糟糕).. 像这样的东西(手边没有这个 sn-p,但只是说明了我要删除的错误代码)

 function findChild(doc:DisplayObjectContainer):void
 {

       //loop through doc.children
       //get current child . ToString check if its [ object Counter ] etc
       // if a match is found set a variable locally to reference it
 }

考虑到子影片剪辑可能只存在于不同的帧上,我怎样才能通过名称或类型安全地访问“myCounter”的实例,甚至是它的一个子项(“myTextField”)。

我有一个相当复杂的工作流程——我导入了一个插画文件,其中包含一个游戏板资产,其中包含柜台和其他子 MC 的设计。 JSFL 用于将片段形状转换为影片剪辑,然后多次交换为单个片段。当我更改自动声明阶段实例设置时,我收到多个错误,因此希望有一个解决方案可以避免此设置。

是否可以将游戏板转换为 Flash IDE 中的组件并在 IDE 中创建一个属性,例如引用“myCounter”?

感谢阅读!!

迈克

【问题讨论】:

    标签: flash flash-builder


    【解决方案1】:

    不确定我是否理解正确,但您可以通过其名称访问子电影剪辑或文本字段。在这种情况下,您可以为 GameBoard 创建 1 个类并为孩子创建一些 getter

    • 添加了 GameBoard 类的 MovieClip GameBoard。
    • MovieClip myCounter,GameBoard MovieClip 的子级,具有名称 myCounter
    • TextField myTf,myCounter 的子级,具有 name myTf

      package {
      public class GameBoard extends MovieClip {
        private function get _myCounter():MovieClip { return this["myCounter"]; }
        private function get _myTf():TextField { return _myCounter["myTf"]; }
      }
      }
      

    您也可以只在代码中使用 this["myCounter"] 和 this["myCounter"]["myTf"],但我更喜欢为它创建 getter。

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 2012-12-22
      • 2011-11-08
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 2011-08-03
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多