2010-09-15 71 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