アクセシビリティ

Flash TechNote

ネストされたムービークリップとシーンの FocusManager と タブインデックスについて

English

問題

ネストされたムービークリップ、コンポーネント、スクリーンベースのアプリケーションでタブが無効になってしまう。

理由

コンポーネントがステージ上に配置されると、FocusManager がデフォルトでアクティブになるため、通常、 Flash Player がハンドルしていたタブ機能が無効になります。FocusManager がアクティブの場合、オブジェクトはFocusManager に監視されるはずです。

回避策

ムービークリッププロパティと共に FocusManager クラスを使用して、コンポーネントおよびネストされたムービークリップオブジェクトのタブインデックスを有効にします。

以下のサンプルはテキスト入力フィールドが配置されているムービークリップを2つ、またテキストフィールドコンポーネントも配置してあります。

以下がフレームアクションに記述するタブシーケンスの ActionScript サンプルコードになります。

//set mc container properties to enable tabbing thru child objects
 mc1.tabChildren=true; 
 mc1.tabEnabled=false;
    
 mc2.tabChildren=true; 
 mc2.tabEnabled=false;
    
//set the tabbing sequence
 mc1.inTxt_1.tabIndex = 1;
 mc1.inTxt_2.tabIndex = 2;
 mc1.inTxt_3.tabIndex = 3;
       
 tf_4.tabIndex = 4;
       
 mc2.inTxt_5.tabIndex = 5;
 mc2.inTxt_6.tabIndex = 6;
 mc2.inTxt_7.tabIndex = 7;

追加情報

ブラウザとの相互関係もありますので、ユーザーが Flash オブジェクトをクリックしない限り、Flash オブジェクトにフォーカスが当たりません。以下の ActionScript にてテキストオブジェクトにフォーカスを当てることが可能となりますが、ブラウザとの相互関係は変わりませんので、Flash オブジェクト内のタブを有効にするにはFlash オブジェクトをクリックする必要があります。

// set initial focus to the first input text object
focusManager.setFocus(mc1.inTxt_1); 
      

また、タブオーダーを ActiveX Flash オブジェクト内に制限するには、次のパラメータを HTML ファイルの <object> タグに挿入する必要があります。

<param name="SeamlessTabbing" value="false" /> 
      

詳細に関しましては、Flash ヘルプの[Flash コンポーネントガイド]-[コンポーネント辞書]-[FocusManager クラス]および MovieClip クラスをご参照ください。

最終更新日: 2005年8月26日
作成日: 2005年2月3日
ID: tn_18983
Product: Flash
Versions: 2004 and above
OS: All
Browser: All
Server: N/A
Database: N/A
Former ID: N/A