在Flash CS5中,我得到
1195:试图访问不可访问的方法testFunc通过引用与静态类型文档。
编译时无法理解的情况,我已经彻底搞清楚了。AS3无法访问的方法 - 一切都明确公开
MyDoc.as - 我的文档类。
package {
import flash.display.MovieClip;
public class MyDoc extends MovieClip {
public function MyDoc() {}
public function myOtherFunc() : void {}
public function myFunc() : void {}
}
}
MyClass.as - 链接到没有代码仅包含TLF文本框的一帧影片剪辑。
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip {
public function MyClass(myDoc : MyDoc) {
myDoc.myFunc();
}
}
}
这就是我的FLA的范围 - 一个影片剪辑。空的阶段,单帧没有代码就可以了。
让我感到困惑的是,如果我将看起来不相关的TLF文本框从等式中移出,或者将其更改为经典文本框,删除它,或者取消其包含的MC的链接,我可以获得无错误编译来自MyClass。
我也可以通过删除myOtherFunc()的定义或将它移动到myFunc()的下面来解决错误,我必须做几次才能说服自己这是真的。
关于发生了什么的任何想法?
更新:我刚刚在朋友的CS5版本上确认了相同的行为。他使用Mac而不是我的Windows安装程序,他只安装了CS5版本,而我同时使用CS5和CS4。这真的好像它可能是一个Flash漏洞...
首先构造不该没有返回类型。尝试重命名您的文档类。可能由于名称冲突而被TLF覆盖? – Roy 2011-03-03 10:48:57
出于某种原因,我一直认为声明返回类型:void等于省略了返回类型,但这并不是真的有意义。有趣的是,这个建议修正了这个例子,但不是它从中派生出来的代码,所以我删除了构造函数的返回类型声明并重新编译并编辑了我的问题。我也改名为Doc,但这并没有办法。 – dbplunkett 2011-03-04 01:51:24