关于“1120:访问的属性xxx 未定义”错误的总结
1.场景描述
1.1 使用的flash builder版本,如下图所示:
1.2 有同名但不同包下的两个工具类SystemUtil:
一个在com.ylzinfo.sysmanager包下;
另一个在com.ylzinfo.util包下;
1.3 现在创建的一个工具类Az01Util其中的某段代码使用到com.ylzinfo.sysmanager包下的SystemUtil类,并且Az01Util放在com.ylzinfo.util包下,如下图所示:
Az01Util中导入了com.ylzinfo.sysmanager.SystemUtil,如下图:
某个方法中使用到com.ylzinfo.sysmanager.SystemUtil,如下图:
1.4 编译时报错,如下图:
2.解决过程
刚遇到遇到这个错误的时候,我感到很困惑,因为明明都已经导入的类的引用为何还会报找到属性的错误呢?如果是java程序,明确程序中所使用的类来自哪个java包是不会有错误的,但这里却报了这个错误,确实很让我头疼。如果说是com.ylzinfo.sysmanager.SystemUtil和com.ylzinfo.util.SystemUtil引用不明确引起的感觉也说不通啊,我明明在文件开头处声明了它的引用来源。唉,进过多次编译结果还是一样,我真怀疑是flash builder 4.1的一个bug,算了还是看看Problems视图里怎么描述吧,如下图:
看来flash builder 4.1真是无法识别util包和sysmanager包下的SystemUtil啊,于是我改成:
我也不在文件开头处导入类引用了,如下图:
直接在使用的地方使用包含包名的类名,如下图:
结果还是报错,如下图:
MD!怎么还说com未定义,崩溃了我!
难道自定义包名还要在文件头声明吗?如下图加入包声明:
再编译,果然尼玛错误没了,如下图:
3.结论
难道是我没有理解flex的语法问题吗?还是flash builder 4.1的一个bug?还真是不能以java编译器的思想来理解flashbuilder 4.1 啊!!!