Flex动态创建类对象
来源:互联网 发布:nginx 技巧 编辑:程序博客网 时间:2024/06/12 22:36
自ActionScript 3开始,eval函数就被取消了,这样就不能像原来那样利用字符串动态的创建对象了,但利用函数flash.utils.getDefinitionByName仍可以根据类型名称动态地创建类对象实例,下面看一个例子:
输出结果:
DynamicObject is created!DynamicObject is created!
其实这样的输出结果,没什么意外的。接下来将“new DynamicObject();”注释掉继续执行,以下是输出解决:
ReferenceError: Error #1065: Variable DynamicObject is not defined.at global/flash.utils::getDefinitionByName()at TestMain/application1_applicationCompleteHandler()[C:/Documents and Settings/Administrator/My Documents/Workspace/eclipse/ccgc/src/TestMain.mxml:14]at TestMain/___TestMain_Application1_applicationComplete()[C:/Documents and Settings/Administrator/My Documents/Workspace/eclipse/ccgc/src/TestMain.mxml:2]at flash.events::EventDispatcher/dispatchEventFunction()at flash.events::EventDispatcher/dispatchEvent()at mx.core::UIComponent/dispatchEvent()at mx.managers::SystemManager/preloader_preloaderDoneHandler()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/managers/SystemManager.as:3140]at flash.events::EventDispatcher/dispatchEventFunction()at flash.events::EventDispatcher/dispatchEvent()at mx.preloaders::Preloader/displayClassCompleteHandler()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/preloaders/Preloader.as:435]at flash.events::EventDispatcher/dispatchEventFunction()at flash.events::EventDispatcher/dispatchEvent()at mx.preloaders::DownloadProgressBar/timerHandler()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as:1451]at mx.preloaders::DownloadProgressBar/initCompleteHandler()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as:1503]at flash.events::EventDispatcher/dispatchEventFunction()at flash.events::EventDispatcher/dispatchEvent()at mx.preloaders::Preloader/dispatchAppEndEvent()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/preloaders/Preloader.as:291]at mx.preloaders::Preloader/appCreationCompleteHandler()[C:/autobuild/3.5.0/frameworks/projects/framework/src/mx/preloaders/Preloader.as:443]at flash.events::EventDispatcher/dispatchEventFunction()at flash.events::EventDispatcher/dispatchEvent()at mx.core::UIComponent/dispatchEvent()at mx.core::UIComponent/set initialized()at mx.managers::LayoutManager/doPhasedInstantiation()at Function/http://adobe.com/AS3/2006/builtin::apply()at mx.core::UIComponent/callLaterDispatcher2()at mx.core::UIComponent/callLaterDispatcher()
之所以会出错,是因为在Flex编译程序时会自行删除一些未使用的,这时在动态创建对象时就会因缺失对象的类型而创建失败。之前的代码之所以执行成功,是因为类型DynamicObject在代码中显示地被使用,所以类型信息DynamicObject在编译时不会被删除。
其实还有一种方法来保证类型信息的存在,就是利用编译参数,也可以保证程序正常执行:
- Flex动态创建类对象
- flex 动态创建checkBox
- flex动态创建界面
- 动态创建c++类对象
- 动态创建CEdit类对象
- 动态创建类的对象
- Flex 3 动态创建Chart
- Flex LineChart动态创建曲线
- 动态2:由类名创建对象
- 根据字符串类名动态创建对象
- 根据字符串类名动态创建对象
- 如何根据字符串动态创建类对象
- 利用map动态创建C++类对象
- 如何根据字符串动态创建类对象
- 动态2:由类名创建对象
- 根据字符串类名动态创建对象
- runtime动态创建类和对象
- 动态创建对象
- 3281. CJ and WS
- 工作
- JavaScript创建对象的内部机制
- 惠普CEO马克·赫德(Mark Hurd)的突然离职
- 与web相关的项目总结
- Flex动态创建类对象
- AUTOIT IE.au3的介绍以及应用
- java 枚举类型
- 6个好习惯让你做个优秀的开发者
- VC资源脚本
- 关于nat的比较通俗的理解
- 文字滚动无间隙代码
- USACO Job Processing
- 操作符的优先级和结合性