本文适用于Actionscript 3和FLASH 9 PUBLIC ALPHA)(如若转载,请留下作者frogcjn的Blog链接:frogcjn.blogba.cn)在AS3之前,通常使用下列语句来动态访问自定义类. global.className;或global["className"];//动态访问的方法 而在AS3中,DisplayOblect及其
本文适用于Actionscript 3和FLASH 9 PUBLIC ALPHA)(如若转载,请留下作者frogcjn的Blog链接:frogcjn.blogba.cn
)
在AS3之前,通常使用下列语句来动态访问自定义类.
global.className;
或
global["className"];//动态访问的方法
|
而在AS3中,DisplayOblect及其子类中,根本没有global这个属性.所以要动态访问自定义类可就难了.
例如在名为Test.fla的FLASH文件中,设置它的"Document class"为Test.as ,然后编辑Test.as,再按"ctrl+enter"运行.(所有范例文件可在本文末端下载)
Test.as 内容:
package{
import flash.display.*;
public class
Test
extends
MovieClip
{
public function
Test
(){
var
a
= Math.floor(Math.random()*3);//随机设定a
的值为0,1或2
trace(a
);//输出数字a
trace(global["Class"+a
]);//在这里本打算动态访问ClassN,
//
正确的话应该输出"[class
classN
]".
//可是由于没有global这个属性,
//却输出"ReferenceError: Error #1065: 变量 global 未定义".
}
}
public class Class0 {
}
public class Class1 {
}
public class Class2 {
}
}
|
可见这个问题有多么烦人.
我的解决方法是在"package{}"之后加入"var global = this;",这样就可以动态访问在"package{}"内部自定义的类了.
例如在名为Test.fla的FLASH文件中,设置它的"Document class"为Test2.as
Test2.as 内容:
package{
import flash.display.*;
public class Test2 extends MovieClip{
public function Test2(){
var a = Math.floor(Math.random()*3);//随机设定a的值为0,1或2
trace(a);//输出数字a
trace(global["Class"+a]);//由于声明了global指向本package,所以正确输出"[class classN]"
}
}
public class Class0 {
}
public class Class1 {
}
public class Class2 {
}
}
var global = this;
|
那么在主时间轴上是否也可以访问在Test2.as中声明的global呢?
在Test.fla文件的第一帧写:
按"ctrl+enter"运行时输出"[object global]",所以global
也可以在外部使用.
那么Top level的类是否也可以通过声明的global
动态访问呢?你可以用下列语句试一试:
trace(global.Math);//输出"undefined" |
答案是否定的,因为global
只能访问"package{}"内部的数据.
范例文件
:
AS3Global.zip
分享到:
相关推荐
global mapper的使用教程,很不错的。也正在学习中
字体格式大小最优化,最佳护眼调色,个人珍藏!(source insight 3.5)
【教程】如何使用global mapper 裁切DEM数据.pdf
11.6.4 在异步任务中使用缓存 395 11.6.5 多异步任务和超时 397 11.7 总结 399 第12章 文件和流 400 12.1 使用文件系统 400 12.1.1 Directory类和File类 400 12.1.2 DirectoryInfo类和FileInfo类 402...
vc++ 全局变量的使用 global function vc++ 6.0 platform
GLOBAL.WK3帮助si开发,有助于编写c程序代码。。分享给大家,希望大家喜欢。
global-mapper-入门指南,旨在协助global-mapper的基本操作,并帮助了解一些常用的功能。
本指南从Global Mapper布局、导入数据、使用数字化工具处理数据、操作属性、使用3D功能、使用LiDAR模块、导出和打印地图 等实质性干货,本入门指南旨在协助您学习使用Global Mapper的基本操作,并帮助您了解一些常用...
使用GlobalMapper生成WWJ缓存文件教程
11.6.4 在异步任务中使用缓存 11.6.5 多异步任务和超时 11.7 总结 第12章 文件和流 12.1 使用文件系统 12.1.1 Directory类和File类 12.1.2 DirectoryInfo类和FileInfo类 12.1.3 DriveInfo类 12.1.4...
Qt5中创建及使用动态库。。
还可以对地图作编辑、转换、打印、记录GPS及利用数据的GIS(地理信息系统)功能.6.xx版增加了直接访问USGS(美国地质勘探局)卫星照片TerraServer数据库和Global Mapper内部的地形图及以真实的3D方式查看高程地图的...
global mapper 的使用教程二,大家一起来学习一下!!!
前端框架vue3的js--vue.global.js
`vue.global.js` 文件是 Vue.js 框架的核心文件之...4. 全局混入:使用 `Vue.mixin` 可以在所有组件中混入指定的选项。 5. 全局过滤器:使用 `Vue.filter` 可以定义全局过滤器。 6. 全局插件:使用 `Vue.use` 可以注册
两个关键词都用于允许在一个局部作用域中使用外层的变量。 global 表示将变量声明为全局变量 nonlocal 表示将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量) 注意:我使用的是Python3.6.3,可能和...
在客户端浏览器访问该页面时,浏览器会给IIS发送请求消息,IIS则会开始执行ASP.NET编译过程,如果不存在编译过后的DLL文件,则加载编译的类并创建对象。当创建对象完成,生成创建对象后的代码并生成一个ASPX页面代码...
顶层对象,在浏览器环境指的是window对象,在Node指是的global对象。ES5之前中,顶层对象的属性与全局变量是等价的。 window.a = 1; a // 1 a = 2; window.a // 2 上面的代码中,顶层对象的属性赋值和全局变量的...