Flash Vista - 主页
本周的热门 Flash 网站
The Two Tales
Site info | 档案文件
主项
主页
新进网站链接
优良评选网站
热门网站
编辑推荐
查找

Flash Tutorials
Flash Resources
FlashVista 新闻
Flash Templates
Flash Intro Templates
Website Templates
Flash Games
Flash Books
FlashVista 票选
本站图


无故定网站连结
English
GUCCI
Site info | 找寻另一个
FlashVista
登录
注册注册
订阅电子报

新建网站链接
编修网站链接
个人喜好网站
建议新分类

打广告
支持
致谢
联落 F

Flash Templates:

More Templates ...

电子报
用户

密码



注册注册
忘记密码?
Partner websites
Free Hit Counter
Free Seo Tools
Free Tutorials
Free Video Tutorials
Forum signatures
Best Free Scripts
Wii Fit
Wii Fit News
Cool Tech Gadgets
Other Resources
推荐
推荐本站给朋友


电子报
状态: 尚未登录

Simplified Chinese English German French Spanish Italian Portuguese Russian Polish Finnish Dutch Swedish Thai Romanian Traditional Chinese Simplified Chinese
查找尚未登录
关键字: 查找:: 高级查找


onKeyDown VS onClipEvent(keyDown)


NEW Flash Tutorials in Video Format - Powered by LearnFlash.com: 45 minutes of flash tutorials now available in streaming format or download. Topics Include flash for beginners, text effects, actionscripting, audio/video, flash 8 and more.


Printer version



by Guy Watson
www.flashguru.co.uk

All movieclips automatically subscribe to amongst other objects, the Key objects event notifications, this means that you can define any of the Key event handlers within your movieclip, without having to explicitly subscribe to the Key objects, event notifications using the Key.addListener(mymovieclip) method...

However, if you are to define one of the Key event handlers inside of a movieclip, you must be aware that the event handler will only fire if the movieclip that contains the event handler currently has input focus, the user of the flash movie can manually change the currently focused movieclip by pressing the tab key on the keyboard, this displays a yellow outline around the currently selected instance unless this options was turned off by the author of the flash movie using:


movieclip._focusrect=false;


This means that the following code will not work as expected:


this.createEmptyMovieClip("_keyListener",1);
_keyListener.onKeyDown=function(){
trace("Key was pressed");
}


Personally, and im sure i speak for most of us, i would expect the above code to output the words "Key was pressed" to the output window whenever a key was pressed. For the same expected results in Flash 5 we would have previously and still can write the above code on the movieclip with an instance name of _keyListener as follows:


onClipEvent(KeyDown){
trace("Key was pressed");
}


The above code in the Flash 5 Player and the Flash 6 Player, would output the words "Key was pressed" in the output window, whenever a key was pressed. However the code i posted at the beginning of this article:


this.createEmptyMovieClip("_keyListener",1);
_keyListener.onKeyDown=function(){
trace("Key was pressed");
}


Does not output the words "Key was pressed" in the output window, whenever i press a key on the keyboard. This is because the onKeyDown event handler for movieclips differs from the onClipEvent(keyDown){} event handler, the Flash MX onKeyDown event handler requires the movieclip to be focused before the event is fired. So, if i want to run some code everytime a key is pressed on the key board, we can either use the old Flash 5 Event handler onClipEvent(KeyDown){}, or we can listen globally for the event notification, this means you have to subscribe the movieclip to the Key objects event notification as follows:


this.createEmptyMovieClip("_keyListener",1);
Key.addListener(_keyListener);
_keyListener.onKeyDown=function(){
trace("Key was pressed");
}


And now everytime a key is pressed on the keyboard the words "Key was pressed" are shown in the output window. The same dicrepancy is valid for the onKeyUp VS onClipEvent(keyUp){} event handlers.

(注册日期: 02-18-2004, 点阅人次: 0, 评比积分: 2.21, 票数: 14, 评论篇数: 0)
新建至个人喜好 建议本站给朋友

评论篇数: (0)


新建评论
Please note:
We review EVERY comment before it appears on the site, so please dont waste your time by posting spam links :)
No URLs allowed, no HTML please.

If you register or login first, your review will contain your nickname


评分



很棒!
非常好