as3的getDefinitionByName函数

as3中的getDefinitionByName函数是 返回 name 参数指定的类的类对象引用。

这样就可以使用这个方法根据已知类的路径的字符串来获取类的类对象引用。这样就可以利用这个特性让flash动态的执行一些程序...

但是问题是:

1. 使用getDefinitionByName方法获得的类必须是在发布的时候被编译到swf文中的,否则就会报错:"ReferenceError: Error #1065: 变量 <类的名字> 未定义。"

2. 由于使用import导入的类(只是作为查找类的路径)并不会在发布swf的时候被编译进去(当然flash.*.*包里面的类本身就是player中的),只用在代码中使用到的类才会被编译进去...



那么,要使用这个方法来实现动态执行怎么办? 只有把可能需要的所有类包含在代码中(比如定义变量),这样才能使用getDefinitionByName方法...
//-------------------------------------------------
import net.roading.component.*;
Window;//var ww:Window;
var c:Class = getDefinitionByName('net.roading.component.Window') as Class;
var w:* = new c(10,10,200,150,'test Title!');


评论: 1 | 查看次数: 1258
  • 1
ispostback [2008-06-06 02:51 PM]
有道理,我也尝试过了,的却在动态产生类之前需要声明一下你要的转换的类~~!
  • 1
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: =1+6
内 容:
  • 粗体
  • 斜体
  • 下划线
  • 插入引用
  • 表情符号
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 300 字 | UBB代码 关闭 | [img]标签 关闭