`
nhy145be
  • 浏览: 11094 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

【FlashCS5】【莫名其妙】之变量 ComponentShim 未定义

 
阅读更多

【FlashCS5】【莫名其妙】之变量 ComponentShim 未定义
2011年10月03日
  ReferenceError: Error #1065: 变量 ComponentShim 未定义
  最近弄UI,一个游戏的UI,文件大得要命,关键很容易出错。
  上面这个错误整整花了半天的时间才解决。下面说说这个问题:
  起因:从别的文件拷贝了一个按钮过来新的文件,在新的文件里面把该按钮改成了MovieClip,同时导出类,继承了MovieClip的一个类。
  现象:提示ReferenceError: Error #1065: 变量 ComponentShim 未定义
  同时伴有编译错误:ButtonPublic.as5000: 类'ButtonPublic'必须为'flash.display.SimpleButton'的子类,因为它链接到该类型的库元件。
  这就是个莫名其妙的地方,明明已经把按钮改成了MovieClip,所有舞台上面的实例都已经设置成了MovieClip,FlashIDE还是偏偏要把它认成一个按钮。
  仔细观察发现,元件的属性里面有个源:引用了一个源fla文件,以及其中的元件,我猜想可能是这里有问题,每次编译的时候都会以这个为准。
  因此新建了一个元件,把里面的内容转移到新元件里面,同样导出类,继承MovieClip。这下编译通过,问题解决。
  这可能算是FlashIDE的一个Bug吧。 总结下:就是FlashIDE编译的时候,会去复制过来的源文件中更新库里面的文件,即使你不勾选总在发布时更新,这个元件还是保留了原始的文件里面的类型信息。
  建议:把一个元件从按钮转成影片剪辑的时候,最好新建一个元件,把按钮里面的内容拷贝进这个新文件,再使用FlashIDE的查找替换功能,把原来的按钮替换成这个新元件。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics