注册
 找回密码
 注册
江西广告网
查看: 199|回复: 0
打印 上一主题 下一主题

Flash MX 2004 组件事件简单调试器 (1)

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-22 16:54:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
Mx 2004 的发布,特别是改为V2 components以后, components的功能得到了极大的强化。而对于普通编程者来说,首先要了解的就是如何合理的使用这些components来完成期望的工作,也就是这个components能实现什么功能,会响应哪些事件,响应事件的过程是如何的,如何编写事件响应函数。 为此,我编写了一个简单的components事件调试器,用来调试components的事件响应过程(具体每个components的实现功能,请查阅Macromedia的help文档) 下面用UI Components里面的 Button components来举例说明components事件调试器的用法: 如图所示,从Flash中的 Components栏目中,找到并展开UI Components,将其中的 Button 这个组件拖入场景中, 在Properties里设置Instance Name为 but 然后,在主时间线上的第一帧,输入以下的调试器代码: form = new Object(); form = function (evt) { trace("Begin"); for (var i in evt) { trace(i add ":" add typeof (eval("evt." add i)) add " = " add eval("evt." add i)); } trace("End"); }; function Init(obj){ obj.addEventListener("click", form); obj.addEventListener("focusIn", form); obj.addEventListener("focusOut", form); obj.addEventListener("keyDown", form); obj.addEventListener("keyUp", form); obj.addEventListener("resize", form); obj.addEventListener("move", form); obj.addEventListener("draw", form); obj.addEventListener("load", form); obj.addEventListener("unload", form); } Init(_root.but); stop(); 然后选择 Ctrl Enter 或者在菜单里选择 Control -> Test Movie 就可以在Flash中对这个components进行操作并在output窗口中看到事件触发过程了,例如: Begin target:movieclip = _level0.but type:string = load End Begin target:movieclip = _level0.but type:string = draw End Begin target:movieclip = _level0.but type:string = focusIn End Begin target:movieclip = _level0.but type:string = click End Begin target:movieclip = _level0.but type:string = keyDown code:number = 65 ascii:number = 97 shiftKey:boolean = false ctrlKey:boolean = false End Begin target:movieclip = _level0.but type:string = keyUp code:number = 65 ascii:number = 97 shiftKey:boolean = false ctrlKey:boolean = false End 从上面的调试情况等可以看出,Button组件的基本事件如下: [color=red'] [/url] [url=/news/news001/flash/200510/20051017083500_2.html] Mx 2004 的发布,特别是改为V2 components以后, components的功能得到了极大的强化。而对于普通编程者来说,首先要了解的就是如何合理的使用这些components来完成期望的工作,也就是这个components能实现什么功能,会响应哪些事件,响应事件的过程是如何的,如何编写事件响应函数。 为此,我编写了一个简单的components事件调试器,用来调试components的事件响应过程(具体每个components的实现功能,请查阅Macromedia的help文档) 下面用UI Components里面的 Button components来举例说明components事件调试器的用法: 如图所示,从Flash中的 Components栏目中,找到并展开UI Components,将其中的 Button 这个组件拖入场景中, 在Properties里设置Instance Name为 but 然后,在主时间线上的第一帧,输入以下的调试器代码: form = new Object(); form = function (evt) { trace("Begin"); for (var i in evt) { trace(i add ":" add typeof (eval("evt." add i)) add " = " add eval("evt." add i)); } trace("End"); }; function Init(obj){ obj.addEventListener("click", form); obj.addEventListener("focusIn", form); obj.addEventListener("focusOut", form); obj.addEventListener("keyDown", form); obj.addEventListener("keyUp", form); obj.addEventListener("resize", form); obj.addEventListener("move", form); obj.addEventListener("draw", form); obj.addEventListener("load", form); obj.addEventListener("unload", form); } Init(_root.but); stop(); 然后选择 Ctrl Enter 或者在菜单里选择 Control -> Test Movie 就可以在Flash中对这个components进行操作并在output窗口中看到事件触发过程了,例如: Begin target:movieclip = _level0.but type:string = load End Begin target:movieclip = _level0.but type:string = draw End Begin target:movieclip = _level0.but type:string = focusIn End Begin target:movieclip = _level0.but type:string = click End Begin target:movieclip = _level0.but type:string = keyDown code:number = 65 ascii:number = 97 shiftKey:boolean = false ctrlKey:boolean = false End Begin target:movieclip = _level0.but type:string = keyUp code:number = 65 ascii:number = 97 shiftKey:boolean = false ctrlKey:boolean = false End 从上面的调试情况等可以看出,Button组件的基本事件如下: [color=red'] [/url] [url=/news/news001/flash/200510/20051017083500_2.html] load 参数(target,type) draw 参数(target,type) (mouse事件) focusIn 参数(target,type) click 参数(target,type) focusOut 参数(target,type) (key事件) keyDown 参数(target,type,code,ascii,shiftKey,ctrlKey) keyUp 参数(target,type,code,ascii,shiftKey,ctrlKey) move 参数(target,type,oldX,oldY) resize 参数(target,type,oldWidth,oldHeight) unload 参数(target,type) 对于的Components,响应的事件会根据组件而不同,获取该组件的主要响应事件的方法很简单,只要将该组件拖入场景,然后在action面板中输入on(然后稍等一会,action面包中会出现一个下拉式列表,列出该组件能响应的主要事件。这时候,只要记下这些事件名,然后在主时间线第一帧修改调试器中的Init(obj)函数,将相应的事件加入监听器,格式类似于: obj.addEventListener("change", form); 通过调试器了解了组件所能响应的事件和过程,只要修改 form函数,根据type值判断响应的是哪个事件,我们就可以很轻松的编写事件响应程序,让组件来完成期望的处理工作了。 [/url] [url=/news/news001/flash/200510/20051017083500.html] [color=red']
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表