·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3通过用户动作来获得焦点(管理焦点)

时间:2016-12-22 13:48酷播
[AS3]as3通过用户动作来获得焦点(管理焦点)

交互式对象可以按编程方式或通过用户动作来获得焦点。在这两种情况下,设置焦点会将对象的 focus 属性更改为 true。另外,如果将 tabEnabled 属性设置为 true,用户可通过按 Tab 将焦点从一个对象传递到另一个对象。请注意,默认情况下,tabEnabled 值为 false,但以下情况除外:

  • 对于 SimpleButton 对象,值为 true

  • 对于输入文本字段,该值为 true

  • 对于 buttonMode 设置为 true 的 Sprite 或 MovieClip 对象,该值为 true

在上述各种情况下,都可以为 FocusEvent.FOCUS_INFocusEvent.FOCUS_OUT 添加侦听器,以便在焦点更改时提供其它行为。这对文本字段和表单尤其有用,但也可以用于 sprite、影片剪辑或从 InteractiveObject 类进行继承的任何对象。下面的示例说明了如何使用 Tab 键启用焦点循环切换,以及如何响应后续的焦点事件。在本例中,每个正方形在收到焦点时将改变颜色。

注: Flash 创作工具使用键盘快捷键来管理焦点;因此,若要正确模拟焦点管理,应在浏览器或 AIR 中测试 SWF 文件,而不是在 Flash 中进行测试。
  1. var rows:uint = 10;  
  2. var cols:uint = 10;  
  3. var rowSpacing:uint = 25;  
  4. var colSpacing:uint = 25;  
  5. var i:uint;  
  6. var j:uint;  
  7. for (i = 0; i < rows; i++)  
  8. {  
  9.     for (j = 0; j < cols; j++)  
  10.     {  
  11.         createSquare(j * colSpacing, i * rowSpacing, (i * cols) + j);  
  12.     }  
  13. }  
  14.   
  15. function createSquare(startX:Number, startY:Number, tabNumber:uint):void  
  16. {  
  17.     var square:Sprite = new Sprite();  
  18.     square.graphics.beginFill(0x000000);  
  19.     square.graphics.drawRect(0, 0, colSpacing, rowSpacing);  
  20.     square.graphics.endFill();  
  21.     square.x = startX;  
  22.     square.y = startY;  
  23.     square.tabEnabled = true;  
  24.     square.tabIndex = tabNumber;  
  25.     square.addEventListener(FocusEvent.FOCUS_IN, changeColor);  
  26.     addChild(square);  
  27. }  
  28. function changeColor(event:FocusEvent):void  
  29. {  
  30.     event.target.transform.colorTransform = getRandomColor();  
  31. }  
  32. function getRandomColor():ColorTransform  
  33. {  
  34.     // Generate random values for the red, green, and blue color channels.  
  35.     var red:Number = (Math.random() * 512) - 255;  
  36.     var green:Number = (Math.random() * 512) - 255;  
  37.     var blue:Number = (Math.random() * 512) - 255;  
  38.       
  39.     // Create and return a ColorTransform object with the random colors.  
  40.     return new ColorTransform(1, 1, 1, 1, red, green, blue, 0);  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器