当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash MX 2004 组件事件简单调试器

Flash动画制作
fmx2004 1000问(5)
Flash MX 2004 组件事件简单调试器
fmx2004 1000问(2)
Action Script 2.0新手调试
Flash 2004 MX Components
flash action 详解(9)
flash action 详解(7)
flash action 详解(1)
flash action 详解(6)
一个用纯AS写的正态曲线画法
flash action 详解(3)
浅谈AS的绘图功能及几个简单的实例
AS的基本代码解释(2)
flash action 详解(2)
flash action 详解(10)
运用for循环来对多个mc进行检测
极坐标在绘画方法中的运用
用Flash 2004编写简单的运算类
flash action 详解(4)
flash action 详解(5)

Flash动画制作 中的 Flash MX 2004 组件事件简单调试器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 68 ::
收藏到网摘: n/a

Mx 2004 的发布,特别是改为V2 components以后, components的功能得到了极大的强化。而对于普通编程者来说,首先要了解的就是如何合理的使用这些components来完成期望的工作,也就是这个components能实现什么功能,会响应哪些事件,响应事件的过程是如何的,如何编写事件响应函数。 为此,我编写了一个简单的components事件调试器,用来调试components的事件响应过程(具体每个components的实现功能,请查阅Macromedia的help文档)
下面用UI Components里面的 Button components来举例说明components事件调试器的用法:
click for full size
如图所示,从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组件的基本事件如下:

    


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值判断响应的是哪个事件,我们就可以很轻松的编写事件响应程序,让组件来完成期望的处理工作了。