自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动态创建多个曲线图和柱形图源码解析 #### 概述 在Adobe Flex框架下,开发者可以通过MXML和ActionScript实现丰富的用户界面和交互功能。在本例中,我们将探讨如何利用Flex来动态地创建多个曲线图和柱形图...
"Flex动态生成checkbox组"这个主题,就是关于如何在Flex应用中利用代码动态创建并管理一系列的Checkbox组件。 Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。在Flex中,我们可以...
在Flex编程中,动态加载外部图片是一项常见的需求,特别是在创建数据驱动的应用程序或者需要根据用户交互更新界面的情况下。本文将深入探讨如何在Flex项目中实现这一功能,包括基本原理、步骤以及常见问题的解决策略...
在Flex编程中,动态画直线是一项基础且实用的技术,尤其在构建交互式用户界面或图形应用时。本文将深入探讨如何使用Flex实现这个功能,并基于提供的"Flex 动态画直线"主题,解释核心概念和步骤。 首先,让我们了解...
这些对象被设计成一系列可继承的类,从而支持更高级的功能,如动态地图服务、要素查询和空间分析。 #### 结论 总而言之,ArcGIS Flex API充分利用了Flex的面向对象特性,为GIS开发者提供了一个强大而灵活的工具集...
3. **设置列数据**:通过遍历数据源,动态创建并添加DataGridColumn到DataGrid: ```actionscript for each (var column:Object in columns) { var dataGridColumn:DataGridColumn = new DataGridColumn(); ...
在MapABC Flex API 2.4中,类是核心组成部分,它们定义了各种功能和对象,如地图对象、图层管理、标记、事件处理等。以下是一些关键的类及其作用: 1. Map类:这是API的基础,用于创建和管理地图实例。你可以通过...
在Flex中,我们可以使用AS3代码来动态修改显示对象的注册点。例如,DisplayObject类提供了`regX`和`regY`属性,分别用于设置对象的水平和垂直注册点。通过改变这两个属性的值,可以将对象的注册点移动到任何位置。 ...
Flex是一种基于ActionScript和...通过以上知识点的学习和实践,你将能够创建出功能强大、交互性强的Flex动态仪表盘。在实际项目中,还需要考虑兼容性、响应式设计等问题,以确保应用在不同设备和浏览器上的良好表现。
在Flex4中,`DataGrid`的列可以通过动态创建来适应变化的数据结构,这在处理不确定列数或列类型的应用场景中非常有用。 在描述中提到,数据可能是数组类型,列名和列个数都是动态的。这意味着在运行时,我们需要...
在Flex中,`MenuBar`类是用于创建顶部水平菜单的组件,它提供了类似于传统桌面应用程序的下拉菜单功能。在Flex项目中,我们通常会将`MenuBar`放置在应用程序的最上方,以提供各种操作选项。 创建`MenuBar`的第一步...
在Flex开发中,"flex动态添加资源"是一个重要的优化策略,它允许开发者在运行时根据需要动态加载资源,而不是在构建SWF文件时一次性将所有资源嵌入其中。这种技术对于大型应用程序尤其有用,因为它可以显著减小SWF...
### Flex中ActionScript动态调用RemoteObject类 在Flex中,使用ActionScript动态调用RemoteObject类是一种常见的实现客户端与服务器端交互的方式。通过这种方式,开发者可以在客户端灵活地调用服务器端的服务,并...
Flex是Adobe公司开发的一种开源框架,主要用于构建富互联网应用程序(RIA)。它基于ActionScript和MXML,提供了丰富...通过这些技术的组合,开发者可以创建出动态、交互性强的可视化应用,用于展示实时变化的数据趋势。
`ArrayCollection`是Flex中用来存储数据的一种集合类,它支持绑定和数据变化通知机制。 ##### 2. 创建和显示树节点 ```as private function createAndShow():void { subNodes.addItem({label:"ŦԼ"}); subNodes....
这是Flex实现动态界面的重要机制。 5. **ActionScript深入**:除了基本的变量、函数、类之外,ActionScript还包括错误处理、事件处理、类的继承、接口实现等内容。熟练掌握ActionScript能提升编程能力。 6. **Flex...
在Flex中实现动态仪表盘,主要是通过ActionScript,这是一种面向对象的脚本语言,与JavaScript类似,但更强大,支持类和对象。ActionScript是Flex的核心,它负责处理应用程序的逻辑,包括数据的获取、处理和展示。 ...
Flex是一种开源的、基于ActionScript的框架,用于创建具有动态用户界面的RIA。它主要用在Adobe Flash Player或Adobe AIR运行时环境中,提供丰富的图形和交互体验。而BlazeDS是Adobe提供的一个开源服务器端技术,它为...
本文将深入探讨如何在 Flex 中动态加载 Image 和 Icon,这对于创建响应式和灵活的应用程序至关重要。动态加载资源可以显著提高应用程序的性能,减少启动时间和内存消耗。 在 Flex 中,我们可以使用 `Loader` 类来...