public class Main extends MovieClip
{
public function Main()
{
mc.addEventListener(MouseEvent.CLICK, f1);
function f1(e:MouseEvent):void
{
trace(this);
this.dispatchEvent(new Event(Event.RESIZE));
}
}
}
[object global]
TypeError: Error #1006: dispatchEvent 不是函数。
at MethodInfo-1()
网上找到的资料
在AS3中使用全局对象(global) 收藏
(本文适用于ActionScript 3)
(如若转载, 请留下作者frogcjn的Blog链接:http://blog.csdn.net/frogcjn/)
© 2007,2008 frogcjn
在AS3之前, 通常使用下列语句来动态访问自定义类.
global.className;
或
global["className"];//动态访问的方法
而在AS3中, Object及其子类中, 根本没有global这个属性。所以要动态访问自定义类可就难了。
例如在名为Test.fla的FLASH文件中, 设置它的"Document class"为Test.as , 然后编辑Test.as, 再按"ctrl+enter"运行.
Test.as 内容:
package{ import flash.display.*; public class Test extends MovieClip{ public functionTest(){ var a = Math.floor(Math.random()*3);//随机设定a的值为0,1或2 trace(a);//输出数字a trace(global["Class"+a]);//在这里本打算动态访问ClassN, //正确的话应该输出"[classclassN]". //可是由于没有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 functionTest2(){ var a = Math.floor(Math.random()*3);//随机设定a的值为0,1或2 trace(a);//输出数字a trace(global["Class"+a]);//由于声明了global指向本package,所以正确输出"[classclassN]" } } public class Class0{ } public class Class1{ } public class Class2{ }}var global = this; 那么在主时间轴上是否也可以访问在Test2.as中声明的global呢?
在Test.fla文件的第一帧写:
trace(global);
按"ctrl+enter"运行时输出"[object global]", 所以 global 也可以在主时间轴上使用。
那么Top level(顶级)类 (如 Math、String、Number类都是顶级类)是否也可以通过声明的global动态访问呢?
你可以用下列语句试一试:
trace(global.Math);//输出"undefined"
答案是否定的, 看来,global只能访问"package{}"内部的对象。
分享到:
相关推荐
回调函数在Java编程中是一种常见的设计模式,它允许我们将一个函数作为参数传递给另一个函数,以便在特定事件发生或特定操作完成后执行。这种模式在异步编程、事件处理和框架设计中尤为常见。理解并熟练运用回调函数...
事件处理包括事件监听(`addEventListener`)、事件触发(`dispatchEvent`)和事件冒泡(事件从子元素向上冒泡到父元素)。 七、模块化 ES6引入了模块系统,使用`import`和`export`关键字进行模块导入和导出,有助...
例如,在提供的代码片段中,`dispatchEvent`函数扮演了分派事件的角色,而`onsignalchange`是事件代理,当输入信号的电平变化时,它会被调用。这种模式提高了代码的模块化和可维护性,使得代码结构更加清晰。 2. `...
当基类指针或引用指向子类对象时,调用虚函数会执行子类的实现,而不是基类的实现。这对于事件处理至关重要,因为注册的事件处理器可能来自不同类型的对象,但它们都必须响应同一类型的事件。 事件注册通常是通过...
document.dispatchEvent(event); // 子iframe document.addEventListener('customEvent', function(event) { console.log('Received:', event.detail); }); ``` 5. **使用HTML5的Channel API**: Channel API...
随后,我们使用`dispatchEvent`来触发这个事件。 在处理字符串时,尤其是处理用户输入或来自网页的文本时,常常需要对HTML标签进行转义以防止跨站脚本攻击(XSS)。`HtmlEncode`函数通过正则表达式替换的方式来转义...
然而,需要注意的是,通过 JavaScript 触发这些函数并不能完全模拟真实的用户操作行为,它仅仅能激发相应的函数执行。 #### 核心知识点详解 ##### 1. **事件绑定机制** 在 HTML5 和 JavaScript 中,事件绑定主要...
在上述代码中,`addEventListener`方法用于绑定事件处理函数,`createEvent`方法用于创建事件对象,最后通过`dispatchEvent`方法触发事件。`initEvent`方法用于初始化事件对象,它接受三个参数:事件类型、一个布尔...
通过研究,我们得知实现这一功能主要涉及到JavaScript的事件触发机制和事件处理函数的调用方法。 首先,我们要明确在JavaScript中模拟触发事件与直接调用事件处理函数的区别。在给定的文件示例中,通过`document....
dispatchEvent 方法在当前节点上触发指定事件,从而触发监听函数的执行。该方法返回一个布尔值,只要有一个监听函数调用了 event.preventDefault(),则返回值为 false,否则为 true。 语法:`target.dispatchEvent...
此外,事件监听和触发(如`addEventListener`和`dispatchEvent`)是与用户交互的关键部分。 在"JavaScript-main"文件中,你可能会发现关于这些主题的实例代码、讲解文档或练习题,这些都是学习和提升JavaScript技能...
- 事件:addEventListener、removeEventListener、dispatchEvent用于事件监听、移除和触发。 - BOM(Browser Object Model):浏览器对象模型,允许JavaScript与浏览器进行交互。 9. **AJAX与Fetch API** - AJAX...
JavaScript通过事件监听(`addEventListener`)和事件触发(`dispatchEvent`)实现用户交互。事件模型包括冒泡、捕获和目标阶段。 九、AJAX与Fetch API 1. AJAX(Asynchronous JavaScript and XML)用于异步加载...
11. 事件处理:封装事件监听器(`addEventListener`)、事件触发(`dispatchEvent`)等。 12. 兼容性处理:为了兼容不同的浏览器或环境,可能包含了一些polyfill函数,如`Array.from`、`Object.assign`等。 13. ...
- 事件触发:`dispatchEvent`方法。 - 事件冒泡与事件捕获。 ### AJAX - 异步数据交换,用于与服务器进行通信,不刷新页面。 - 使用`XMLHttpRequest`对象或更现代的`fetch` API。 ### DOM操作 - 选择元素:`...
7. **面向对象编程**:JavaScript虽然不是一种严格的面向对象语言,但它支持类的模拟,通过构造函数和原型链可以创建和继承对象。`class`关键字在ES6中引入,提供了一种更简洁的面向对象语法。 8. **Promise和async...
此外,事件监听(addEventListener)和触发(dispatchEvent)也是Web开发中常见的操作。 6. **异步编程**:JavaScript的异步处理通常涉及回调函数、Promise、async/await等。这些机制使得非阻塞代码执行成为可能,...
10. **事件处理**:在浏览器环境中,JavaScript 可以通过事件监听(addEventListener)和事件触发(dispatchEvent)来处理用户交互。 11. **DOM操作**:DOM(Document Object Model)是HTML和XML文档的结构表示,...
在`.as`文件中,查找与事件相关的代码段,如`addEventListener`和`dispatchEvent`函数,有助于理解游戏如何响应用户的输入。 3. **游戏循环**:大部分Flash游戏都有一个主循环,用于不断更新游戏状态并渲染画面。这...