[AS3]as3通过用户动作来获得焦点(管理焦点)
交互式对象可以按编程方式或通过用户动作来获得焦点。在这两种情况下,设置焦点会将对象的 focus 属性更改为 true。另外,如果将 tabEnabled 属性设置为 true,用户可通过按 Tab 将焦点从一个对象传递到另一个对象。请注意,默认情况下,tabEnabled 值为 false,但以下情况除外:
-
对于 SimpleButton 对象,值为 true。
-
对于输入文本字段,该值为 true。
-
对于 buttonMode 设置为 true 的 Sprite 或 MovieClip 对象,该值为 true。
在上述各种情况下,都可以为 FocusEvent.FOCUS_IN 或 FocusEvent.FOCUS_OUT 添加侦听器,以便在焦点更改时提供其它行为。这对文本字段和表单尤其有用,但也可以用于 sprite、影片剪辑或从 InteractiveObject 类进行继承的任何对象。下面的示例说明了如何使用 Tab 键启用焦点循环切换,以及如何响应后续的焦点事件。在本例中,每个正方形在收到焦点时将改变颜色。
- var rows:uint = 10;
- var cols:uint = 10;
- var rowSpacing:uint = 25;
- var colSpacing:uint = 25;
- var i:uint;
- var j:uint;
- for (i = 0; i < rows; i++)
- {
- for (j = 0; j < cols; j++)
- {
- createSquare(j * colSpacing, i * rowSpacing, (i * cols) + j);
- }
- }
- function createSquare(startX:Number, startY:Number, tabNumber:uint):void
- {
- var square:Sprite = new Sprite();
- square.graphics.beginFill(0x000000);
- square.graphics.drawRect(0, 0, colSpacing, rowSpacing);
- square.graphics.endFill();
- square.x = startX;
- square.y = startY;
- square.tabEnabled = true;
- square.tabIndex = tabNumber;
- square.addEventListener(FocusEvent.FOCUS_IN, changeColor);
- addChild(square);
- }
- function changeColor(event:FocusEvent):void
- {
- event.target.transform.colorTransform = getRandomColor();
- }
- function getRandomColor():ColorTransform
- {
- // Generate random values for the red, green, and blue color channels.
- var red:Number = (Math.random() * 512) - 255;
- var green:Number = (Math.random() * 512) - 255;
- var blue:Number = (Math.random() * 512) - 255;
- // Create and return a ColorTransform object with the random colors.
- return new ColorTransform(1, 1, 1, 1, red, green, blue, 0);
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例