在Event监听并转发过程中, 因为没用重写Clone方法, 导致实例被Clone为普通Event实例.
情况是这样的:
自定义Event: EventTest: 继承Event, 增加了一些属性, 重写了toString(), 未重写Clone.
出现问题: 创建EventTest实例后, 多次监听并转发, 在监听, 转发过程中, Event实例对象被Clone, 因为未重写Clone方法, 会通过Event类的Clone方法进行复制, 仅会复制其EventType, 且类型为Event.
形象的说就是: eventTest –> 被监听到, 准发 ->框架Clone eventTest(EventTest类中未重写Clone方法, 于是eventTest被克隆为一个普通Event) –> 再次监听, Event类型不吻合, 报错.
公司代码规范中严格规定了自定义Event必须及时重写Clone与toString方法, 写了这么久, 我才领悟到原因. 败了
See: http://coenraets.org/blog/2010/12/tutorial-flex-for-android-in-90-minutes/
上面是一个Render, 一个由image, label等组成的Box.
默认状态下鼠标划过时为普通状态或字符编辑状态, 为了使鼠标滑过时样式变为手型, 可使用:
useHandCursor = true; buttonMode = true; mouseChildren = false;
设置鼠标状态忙: http://liguoliang.com/2010/using-cursormanager-in-flex-with-actionscript/
最近Build新工程, 在Build文件中已经包含了locale文件, 但Build出来仍旧只是英文…后来想起来是自己的flex-config文件没有改…:(.如果要在Build中包含Localization, 则需要对flex-config.xml进行配置: 将要build的语言包加到<locale>标签中, 如下:
<locale>
<locale-element>en_US</locale-element>
<locale-element>zh_CN</locale-element>
</locale>
flex-config.xml文件地址: ..\flash_builder_4.0\FB\sdks\4.0.0\frameworks
如果是所有的都失效可参照:
http://www.airtightinteractive.com/2010/01/fix-for-flash-builder-content-assist-did-not-complete-normally/ 或:
https://jira.jboss.org/browse/JBIDE-1061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs
但如果只有个别的Class失效, 你需要:
查看Outline显示是否正确, 此时可能不会显示任何Property或Method
这个问题极有可能是代码出现问题, 但不会提示错误, 也能正常工作.
解决方法就是一段段的注释掉, 保存, 查看Outline显示是否正常, 譬如一下代码
var s:String = new (String)(“test”); // 一般没人这么写… :(, 但在通过传进来的Class创建Instance时, 发现这么一行…
这行代码不会报错, 也正常工作, 但只要因为Class被括号包住了, Outline无显示, 代码提示失效.
修改正确后, 代码提示正常工作. var s:String = new String(“test”);
相应的在JDT中, 会直接报错, 但FB IDE不报错, 也无法解析当前源代码, 睁一只眼闭一只眼…
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.