- 浏览: 7371445 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目中自定义一个CheckboxGroup,这个控件里面包含多个Checkbox想控制Checkbox的行为:所以使用查找一下帮助使用flex中经典方法:getDefinitionByName 函数的使用
public function getDefinitionByName(name:String):Object
返回参数 name 中指定的类引用
参数 name:String - 类名称
返回 Object - 返回参数 name 中指定的类引用
错误 ReferenceError - 找不到参数 name 对应的公共定义
as3中的getDefinitionByName函数是 返回 name 参数指定的类的类对象引用。
这样就可以使用这个方法根据已知类的路径的字符串来获取类的类对象引用。这样就可以利用这个特性让flash动态创建类的实例...
但问题是:
1. 使用getDefinitionByName方法获得的类必须是在发布的时候被编译到swf文中的,否则就会报错:"ReferenceError: Error #1065: 变量 <类的名字> 未定义。"
2. 由于使用import导入的类(只是作为查找类的路径)并不会在发布swf的时候被编译进去(当然flash.*包里面的类本身就是player中的),只用在代码中使用到的类才会被编译进去...
那么,要使用这个方法来实现动态执行怎么办? 只有把可能需要的所有类包含在代码中(比如在定义变量的类型声名时使用 *),并且在开始声名此类,声名时可以随便使用个名字,这样才能使用getDefinitionByName方法...
实际上getDefinitionByName所获得的类名就是前面你所做的声名的名字引用
-------------------------------------------------
import com.ooph.parser.*;
//包内有ParserWeb类
var ss:ParserWeb;
//在此处声名ParserWeb类,名为ss(名字不用与下面实例名的相同)
var sortStr:String="Web";
var P:Class = getDefinitionByName("com.ooph.parser.Parser"+sortStr) as Class;
//注意这里要写完整的类路径 "com.ooph.parser.Parser"+sortStr
var newParser:* = new P();
getDefinitionByName(name) 返回 name 参数指定的类的类对象引用。 经过测试只能获取内置的类,不能获取自定类,怎么解决呀?? 其实最终问题是,知道类名,但是为字符串,如何获取它?因为数量不定放在XML中配置的。 |
因为内置类库肯定会被编译到swf里,这样反射就能拿到。而自定义的类,如果整个工程里都没有用到,即使import也不会被编译(不然swf里的垃圾成分太多)。我建议可以把需要反射的类库生成一个swf去载入,或者在工程的什么地方引用一下。
getDefinitionByName | () | 函数 |
public function getDefinitionByName(name:String):Object
语言版本 : | ActionScript 3.0 |
RuntimeVersions: | AIR 1.0, Flash Player 9 |
返回 name
参数指定的类的类对象引用。
参数
name:String — 类的名称。 |
返回
Object — 返回 name 参数指定的类的类对象引用。 |
引发
ReferenceError — 不存在具有指定名称的公共定义。 |
示例
GetDefinitionByNameExample
类在舞台上创建一个橙色的正方形。这是使用以下步骤完成的: - 声明代表橙色背景颜色和 80 像素大小的变量,这些变量稍后将用于绘制正方形。
- 在构造函数内,将 Class 类型的变量
ClassReference
赋予 Sprite。 - 对名为
instance
的 ClassReference 的实例进行实例化。 - 由于
instance
按引用是 Sprite 对象,因此可以使用可用于 Sprite 的方法绘制正方形并将其添加到显示列表。
package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.utils.getDefinitionByName; public class GetDefinitionByNameExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function GetDefinitionByNameExample() { var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new ClassReference(); instance.graphics.beginFill(bgColor); instance.graphics.drawRect(0, 0, size, size); instance.graphics.endFill(); addChild(DisplayObject(instance)); } } }
评论
比如:
我传递过来
类名字:
var classStr:String="People";
方法名字:
var funcStr:String="sayHello";
sayHello方法的参数为:
var arr:Array=new Array(12,5551,"Hi,你好!");
private function callFunction(classStr,funcStr,arr):void{
........?这块怎么写。
}
qiyy@winnerinf.com
发表评论
-
flex 中As3Commons的使用學習
2009-10-15 12:53 3761學習Java的人,知道java中反射的强大, ... -
flex的国家化的应用
2009-09-23 08:59 2102在项目中需要使用发送短信模板的功能的,根据主题不同,模板不同, ... -
flex的沙箱问题
2009-09-14 17:14 5467在flex与google的地图整合中发现,点击了goog ... -
Flex 常用技巧
2009-09-04 13:00 2602flex是一种异步请求的技术,如果要实现同步必须在传递函 ... -
Flex 開發Google地圖
2009-08-24 13:16 24721 .获取googe的key 2.下载google的fle ... -
查询之order by,group by和having的使用
2009-08-08 15:48 4751在项目中查询常驻酒店的中住的次数最多的前10个酒店: 代码如 ... -
objectProxy的监控对象应用
2009-08-08 13:46 2693在项目中查询根据一个字段发生实现需要特殊的功能,作出相应的动作 ... -
Flex 依赖注入
2009-08-08 13:41 2127了解依赖注入 众所周 ... -
Flex 与外部的数据通信(HTTPService,URLLoader和URLRequest)
2009-08-08 13:36 7458ActionScript 3.0中提供的数据加载请求类主要是H ... -
flex 数据绑定
2009-08-08 13:31 24209.2.1 函数和类级别的绑定 [Bindable]标签打使 ... -
Flex中Entity对象与Display对象之间的数据双向动态绑定
2009-08-08 13:27 2483flex项目中对象的和组 ... -
学习ActionScript 3.0的新特点
2009-08-06 13:05 2035ActionScript3.0 是一种类型 ... -
理解 Flex itemRenderer - 第 1 部分: 内联渲染器
2009-08-05 16:37 3156Flex 提供许多控制, 它们可以按不同方式显示大量数据。Li ... -
flex 中类似Google的提示下拉菜单实现
2009-08-01 16:28 5434项目中使用类似Gooogle输入提示菜单的实现如下 ... -
针对Flex中组件的扩展的应用开发
2009-08-01 16:04 2884在项目中使用一个自定义的CheckboxGroup组件继承自C ... -
Flex类似Google搜索提示的两种做法思路
2009-08-01 15:52 2696做了个简单的搜索提示 ... -
Flex中直接获取某个组件的对象
2009-08-01 15:47 2482Flex中直接获取某个组件的对象方案1: 遍历这些butto ... -
flex 查看类的各种数据的权限
2009-08-01 15:18 1885查看类的一些属性的信息:可读,可写,可读可写。 ... -
Flex 学习中数据类型必须注意的几点
2009-08-01 12:36 2298在字符串转换为int类型必须使用 最好如下: var a:i ... -
flex BindUtils的扩展的样式表绑定工具类StyleBindingUtils
2009-07-30 13:06 2251项目中使用的样式表绑定类如下: package uti ...
相关推荐
SWC包“entity-flex-v1-02”可能是专门为了解析和操作JSON对象而设计的,这可能包含了一些优化的函数和类,使得在Flex中处理JSON更加高效和便捷。 “Examples”目录很可能包含了使用这个SWC包的示例代码。通过查看...
在本文中,我们将深入探讨如何使用Flex来控制SWF(Shockwave Flash)文件的播放。Flex是一种基于ActionScript 3的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据绑定机制...
在Flex中,ActionScript 3.0提供了反射API,主要由`flash.utils`包下的`getQualifiedClassName`、`getQualifiedSuperclassName`、`getDefinitionByName`、`describeType`等函数组成。 2. **核心API**: - `...
在事件处理函数中,可以根据点击的菜单项的`label`属性或其他属性来执行相应的操作。例如: ```actionscript menubar.addEventListener(MenuItemEvent.ITEM_CLICK, onMenuItemClick); private function ...
通过`flash.utils.getDefinitionByName`函数,我们可以动态获取SWF中的类定义,进一步分析和执行其中的代码。对于复杂的ActionScript项目,理解其执行流程和数据结构是关键。 总的来说,理解和解析SWF文件格式需要...