`

dispatchEvent 不是函数

阅读更多
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.rar

    回调函数在Java编程中是一种常见的设计模式,它允许我们将一个函数作为参数传递给另一个函数,以便在特定事件发生或特定操作完成后执行。这种模式在异步编程、事件处理和框架设计中尤为常见。理解并熟练运用回调函数...

    js方法和函数

    事件处理包括事件监听(`addEventListener`)、事件触发(`dispatchEvent`)和事件冒泡(事件从子元素向上冒泡到父元素)。 七、模块化 ES6引入了模块系统,使用`import`和`export`关键字进行模块导入和导出,有助...

    javascript事件模型代码

    例如,在提供的代码片段中,`dispatchEvent`函数扮演了分派事件的角色,而`onsignalchange`是事件代理,当输入信号的电平变化时,它会被调用。这种模式提高了代码的模块化和可维护性,使得代码结构更加清晰。 2. `...

    继承、虚函数的应用模式(二):事件注册与调度机制

    当基类指针或引用指向子类对象时,调用虚函数会执行子类的实现,而不是基类的实现。这对于事件处理至关重要,因为注册的事件处理器可能来自不同类型的对象,但它们都必须响应同一类型的事件。 事件注册通常是通过...

    同级iframe间的函数调用

    document.dispatchEvent(event); // 子iframe document.addEventListener('customEvent', function(event) { console.log('Received:', event.detail); }); ``` 5. **使用HTML5的Channel API**: Channel API...

    JavaScript常用工具函数大全

    随后,我们使用`dispatchEvent`来触发这个事件。 在处理字符串时,尤其是处理用户输入或来自网页的文本时,常常需要对HTML标签进行转义以防止跨站脚本攻击(XSS)。`HtmlEncode`函数通过正则表达式替换的方式来转义...

    javascript 触发HTML元素绑定的函数

    然而,需要注意的是,通过 JavaScript 触发这些函数并不能完全模拟真实的用户操作行为,它仅仅能激发相应的函数执行。 #### 核心知识点详解 ##### 1. **事件绑定机制** 在 HTML5 和 JavaScript 中,事件绑定主要...

    javascript触发模拟鼠标点击事件

    在上述代码中,`addEventListener`方法用于绑定事件处理函数,`createEvent`方法用于创建事件对象,最后通过`dispatchEvent`方法触发事件。`initEvent`方法用于初始化事件对象,它接受三个参数:事件类型、一个布尔...

    JS简单模拟触发按钮点击功能的方法

    通过研究,我们得知实现这一功能主要涉及到JavaScript的事件触发机制和事件处理函数的调用方法。 首先,我们要明确在JavaScript中模拟触发事件与直接调用事件处理函数的区别。在给定的文件示例中,通过`document....

    2.01 JavaScript基础事件以及Event对象(原生态).pdf

    dispatchEvent 方法在当前节点上触发指定事件,从而触发监听函数的执行。该方法返回一个布尔值,只要有一个监听函数调用了 event.preventDefault(),则返回值为 false,否则为 true。 语法:`target.dispatchEvent...

    [removed]您可以在此存储库中找到很多有关javascript的知识。 (类,高阶函数,DOM操作等)

    此外,事件监听和触发(如`addEventListener`和`dispatchEvent`)是与用户交互的关键部分。 在"JavaScript-main"文件中,你可能会发现关于这些主题的实例代码、讲解文档或练习题,这些都是学习和提升JavaScript技能...

    javascript用户手册

    - 事件:addEventListener、removeEventListener、dispatchEvent用于事件监听、移除和触发。 - BOM(Browser Object Model):浏览器对象模型,允许JavaScript与浏览器进行交互。 9. **AJAX与Fetch API** - AJAX...

    JavaScript 语言用法指南,语法详细介绍,中文版的哦

    JavaScript通过事件监听(`addEventListener`)和事件触发(`dispatchEvent`)实现用户交互。事件模型包括冒泡、捕获和目标阶段。 九、AJAX与Fetch API 1. AJAX(Asynchronous JavaScript and XML)用于异步加载...

    utils:util函数的集合

    11. 事件处理:封装事件监听器(`addEventListener`)、事件触发(`dispatchEvent`)等。 12. 兼容性处理:为了兼容不同的浏览器或环境,可能包含了一些polyfill函数,如`Array.from`、`Object.assign`等。 13. ...

    Javascript

    - 事件触发:`dispatchEvent`方法。 - 事件冒泡与事件捕获。 ### AJAX - 异步数据交换,用于与服务器进行通信,不刷新页面。 - 使用`XMLHttpRequest`对象或更现代的`fetch` API。 ### DOM操作 - 选择元素:`...

    javascript代码

    7. **面向对象编程**:JavaScript虽然不是一种严格的面向对象语言,但它支持类的模拟,通过构造函数和原型链可以创建和继承对象。`class`关键字在ES6中引入,提供了一种更简洁的面向对象语法。 8. **Promise和async...

    JavaScript快速查询手册

    此外,事件监听(addEventListener)和触发(dispatchEvent)也是Web开发中常见的操作。 6. **异步编程**:JavaScript的异步处理通常涉及回调函数、Promise、async/await等。这些机制使得非阻塞代码执行成为可能,...

    javascript,js帮助文档

    10. **事件处理**:在浏览器环境中,JavaScript 可以通过事件监听(addEventListener)和事件触发(dispatchEvent)来处理用户交互。 11. **DOM操作**:DOM(Document Object Model)是HTML和XML文档的结构表示,...

    打气球-flash游戏源码

    在`.as`文件中,查找与事件相关的代码段,如`addEventListener`和`dispatchEvent`函数,有助于理解游戏如何响应用户的输入。 3. **游戏循环**:大部分Flash游戏都有一个主循环,用于不断更新游戏状态并渲染画面。这...

Global site tag (gtag.js) - Google Analytics