2010-09-15 70 views
1

我在Flash IDE中设计了一个UI,为ActionScript导出了很多对象,并使用外部文档类.as文件编写应用程序。Flash/ActionScript - 关闭辅助功能

在Flash IDE中,我不希望我的任何滑块或textField具有辅助功能选项。我打开辅助功能面板(窗口>其他面板>辅助功能),并选择舞台,取消选中“制作电影无障碍”。保存。编译。运行时错误:

~/myCustomClass.as, Line 4 1180: Call to a possibly undefined method AccessibilityProperties. 

4号线是一个简单的导入:

import flash.display.Sprite; 

我怎么能解决这个问题?

UPDATE:

添加以下进口到我的。至于消除了运行时错误:

import flash.accessibility.AccessibilityProperties; 
import flash.accessibility.Accessibility; 

但是,应用程序仍然允许黏合。我怎样才能完全关闭可访问性?

我已经试过:

Sprite.prototype.tabEnabled = false; 

但这并没有工作。

回答

1

阶段将无法正常工作,但你应该能够用root来做到这一点。 在闪存IDE中,在主时间轴上添加以下内容:

 
var main:MovieClip = this.root as MovieClip(); 
main.tabEnabled = false; 
main.tabChildren = false; 
+1

谢谢,这工作。我只需要添加this.tabChildren = false;到我的主要文档类。 – TheDarkIn1978 2010-09-15 07:31:38

0

尝试:

stage.tabEnabled = false; 
stage.tabChildren = false; 

因为每个显示对象是阶段的孩子,应该在全球范围阻止它。

UPDATE:

因为你不能设置在舞台上tabEnabled属性,你可以遍历其上的所有儿童,并将其应用到它们。

for(var:int; i < stage.numChildren; i++) { 
    var c:DisplayObject = stage.getChildAt(i); 

    if(c is InteractiveObject) { 
     InteractiveObject(c).tabEnabled = false; 
    } 

    if(c is DisplayObjectContainer) { 
     DisplayObjectContainer(c).tabChildren = false; 
    } 
} 
+0

没有工作。我收到了尝试使用tabEnabled属性设置舞台的运行时错误。它接受tabChildren,但它仍然允许我标签。 – TheDarkIn1978 2010-09-15 06:30:52

+0

你能发布错误吗?我只是做了一个快速测试,它按照我的预期工作,没有错误。 – 2010-09-15 06:35:38

+0

错误:错误#2071:Stage类未实现此属性或方法。在错误$/throwError()在flash.display :: Stage/settabEnabled()。它还在文档中声明,如果在舞台上设置了tabEnabled,则会抛出IllegalOperationError:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Stage.html – TheDarkIn1978 2010-09-15 06:38:15