Macromedia Flash非公式テクニカルノート 静止テキストがStaticTextインスタンスとして認識されない
問題 たとえば、オンラインヘルプの[ActionScript 3.0のプログラミング] > [テキストの操作] > [静止テキストの操作]は、オーサリング時にタイムラインに配置された「静止テキストフィールドへの参照を作成するには、表示リスト内のアイテムに対して反復処理を行い、変数を割り当て」るよう説きます(スクリプト001)。 スクリプト001■タイムラインに配置された静止テキストの参照を取得する
しかし、静止テキストがタイムラインに配置されている唯一のオブジェクトであっても、StaticTextインスタンスと認識されず、上記スクリプト001で何も[出力]されないことがあります。
原因 図001■静止テキストにデバイスフォントを設定するとTextFieldインスタンスと認識される TextFieldクラスは、InteractiveObjectを経由してDisplayObjectクラスを継承します。StaticTextクラスは直接DisplayObjectクラスを継承しますので、どらも互いに継承関係にはありません。したがって、TextFieldクラスのインスタンスとされれば、StaticTextクラスのプロパティやメソッドには一切アクセスできなくなります。 他方で、デバテスフォントの設定された静止テキストは、TextFieldインスタンスとしての振舞いを見せます。たとえば、StaticTextクラスであれば読取り専用のtextプロパティに、TextFieldの同名プロパティと同様に文字列の設定が可能になります。しかし、TextFieldインスタンスと認識される結果を仕様と考える理由は見出しがたく、サポートされる動作ではないでしょう。 対処法 もし、何らかの理由でデバイスフォントを使わなければならない場合には、選択不可に設定したダイナミックテキストで代用が可能だと思われます。 作成者: 野中文雄 Copyright © 2001-2007 Fumio Nonaka. All rights reserved. |
|||||||