本文适用于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
分享到:
相关推荐
例如,在 for 循环中使用 break,可以跳出当前循环。 8. class:类定义 class 是 Python 中的关键字,用于定义类。类是 Python 中面向对象编程的基础,主要用于封装、继承、多态等。 9. continue:跳出当前循环 ...
类RegEx.cls是为VB6设计的一个包装器,它封装了VBScript的RegExp对象,使得在VB6项目中使用正则表达式变得更加方便。以下是一些关键知识点: 1. **创建正则表达式对象**:在VB6中,首先需要实例化RegEx类,这会创建...
3-3 读取目录下图片文件列表并显示,可以使用ASP.NET的文件系统类,如`Directory.GetFiles()`,然后在对话框中展示。点击图片后,将路径传递到父窗口。 3-4 上传文件的验证和处理,需要结合`HttpPostedFileBase`类...
Python中的类可以使用装饰器@classmethod和@staticmethod来定义类方法和静态方法。classmethod可以访问类的所有实例,而staticmethod不能访问类的实例。 3. 删除列表中的重复元素 可以使用set方法或fromkeys方法来...
在ASP中,文件上传通常需要自定义的类或组件来处理,因为ASP本身并不内置文件上传的支持。"aspupclass"可能包含了一个ASP上传组件,它能够接收用户通过表单上传的文件,并将这些文件保存到服务器的特定目录。这个类...
// 使用Server.Transfer来在服务器内部转移控制权到错误处理页面(例如,Error.aspx) // 这样可以保持原始URL不变,提供更好的用户体验 Server.Transfer("~/Error.aspx", false); } } } ``` 在上述代码中,...
在 Python 中,可以使用 `except Exception as e` 抓取多个异常类,但无法直接获取类的静态变量。静态变量通常是类属性,可以通过类名访问: ```python try: ... except ValueError as e: print(ValueError.my_...
例如,JScript 允许在数组字面量中使用计算属性名,这意味着数组元素可以通过表达式动态确定索引位置。 ##### 7. 函数表达式(Function Expressions): §11.2.5 JScript 支持 ES3 中定义的函数表达式,并在此基础...
在Python代码中,我们需要导入必要的pyecharts类: ```python from pyecharts import options as opts from pyecharts.charts import Line ``` 然后,我们需要准备数据。这可以是列表、元组或其他可迭代对象,包含...
在PowerBuilder中,我们可以使用`Thread`对象来创建新的线程。`threads.pbl`和`threads.pbt`文件很可能是包含了这个多线程示例的相关类库和项目文件。 首先,我们需要创建一个`Thread`对象,这可以通过调用`Create`...
FreeMarker是一款强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。它与Java语言紧密集成,但不包含任何业务逻辑,仅负责展示数据,实现视图层的分离。这份...
- **位运算符**:只适用于二进制数据,通常在低级别的编程中使用,但VBA不直接支持位运算。 3. **数据类型**: - VBA提供12种内置数据类型,如`String`、`Byte`、`Boolean`、`Integer`、`Long`、`Single`、`...
2. 动态数组:使用`Redim`语句在程序运行时调整大小,`Preserve`关键字保留原有数据。 **六、注释与赋值语句** 1. 注释语句:`'`或`Rem`开头的行被视为注释 2. 赋值语句:使用`=`将值分配给变量或对象属性,如`X = ...
5. SQL别名:使用AS关键字可以为SQL查询中的列生成别名,例如`SELECT ename, sal*12 AS AnnualSalary FROM emp;` 6. 锁机制:在数据库中,锁用于保证数据的一致性和完整性,提供数据的安全性。 7. 不同类型的锁:...
使用`CONN /AS SYSDBA`连接到数据库,然后使用`SHOW PARAMETER db_domain`和`SHOW PARAMETER db_name`查看`db_domain`和`db_name`的当前设置。 9. **DBLink与视图的区别** 虽然DBLink和视图都可以提供对远程数据...
**在控制器中使用Doctrine** 在控制器中,我们可以注入EntityManager或Repository来操作数据: ```php use EntityManager; use App\Repositories\UserRepository; class UserController extends Controller { ...
在Pyecharts中,创建漏斗图主要通过`Funnel`类来实现。下面是一个简单的示例: ```python from pyecharts import options as opts from pyecharts.charts import Funnel # 定义数据 data = [ {"name": "访问", ...
- **扩展安全对象模型**:允许开发者自定义安全对象来满足特殊需求。 **5.6 国际化** - Spring Security 提供了对国际化(i18n)的支持,使得开发者能够轻松地实现多语言界面。 #### 四、Spring Security 社区 - ...
在VBA中,可以定义固定大小的数组(如`Dim XYZ(1 To 10 As Integer)`)和动态数组(用`Redim`在运行时调整大小,如`ReDim Preserve XYZ(5, 10)`)。动态数组特别有用,因为可以在程序运行时更改其大小,同时保留原有...