SpecialButtonコンポーネント よくある質問(FAQ)
コンポーネントを実用する際にありがちな質問をまとめてみました。| 2006/12/09 | 正式版公開準備に合わせて各種文言修正 |
| 2005/06/21 | ベータバージョン公開 |
原因
バージョン6以前のPluginとSAplayerで閲覧すると起こるPlayer側のバグです。
バージョン7(2004)以降のPlugin、およびSAplayerで閲覧すれば正常に表示されます。
回避方法
閲覧者に最新のPlayerのインストールを促すか、
ボタンの枠内にテキストが収まるようにテキストおよびボタンのサイズを調節するか、
setAutoSizeをtrueに指定して下さい。
原因
読み込んだswfファイル内でrootが指定されていると
読み込み元swfファイル(=ボタンを使用しているswfファイル)内のrootを参照してしまうため。
回避方法
読み込み元swfファイル内のrootを削除するか、
_lockroot(MX2004以降で使用可能)を要所で使用して下さい。
原因
読み込んだswfファイル内のボタンの上に
SpcialButton本体の当たり判定が被(かぶ)さっているため
回避方法
setEnabledをfalseにすればSpcialButton本体のボタンの当たり判定が無くなり、
読み込んだswfファイル内のボタンが押下可能になります。
原因
AutoSizeで取得するWidthとHeightは読み込み元swfファイルのステージサイズではなく
読み込み元swfファイルの1フレーム目に配置されているシンボルを全て統合したwidthとheightを取得するため
(つまり、1フレーム目の枠外にシンボルを設置しているようなswfは正しいサイズを読み込めません)
回避方法
読み込み元swfファイル内の1フレーム目の内容をステージサイズとまったく同じにするか、
AutoSizeをfalseにして正しい縦横値を手動で指定したのち、setLabelを実行して下さい。
(読み込み元swfファイル内の1フレーム目の内容をステージサイズとまったく同じにするには、
rootのシンボル全てをステージサイズとまったく同じ大きさのマスクでかぶせると簡単です)
原因
外部テキストの文字コードが「UTF-8」形式ではないため。
回避方法
「System.useCodePage = true;」をrootの1フレームに記載するか、
外部テキストをUTF-8形式に変更して下さい。
原因
アドレスが間違っているか、自ドメイン以外のアドレスを参照している。
(例:http://geocities.jp/内にあるswfからhttp://www.infoseek.jp/内にあるswfを参照している)
回避方法
参照するswfファイルに「System.allowdomain」を指定して
外部アドレスのファイルを参照可能にするか、
外部アドレスの指定を諦めて正しいアドレスを指定して下さい。
原因
テキストボックスにフォーカスが当たっている。
(むしろテキスト入力中にボタンのハンドラが動き出したらウザイでしょ?
ボタンのショートカットキーを「Ctrl+C」にして、どっかのテキストボックスの内容を
コピーしようとしたらボタンのハンドラが動いた!とか)
回避方法
テキストボックスからフォーカスを外してから
対応するショートカットキーを押下して下さい。
ラベルの種類に「リンケージMC」を設定し、
リンケージを行うMCの中で埋め込みフォントを使用するか、
コンポーネントのシンボル「Flash UI Simple Compornents/Parts/SpecialButton_TextLabel」内にある
テキストボックス「Label_txt」と「Shadow_txt」のフォント名、および埋め込みフォントの情報を直接編集して下さい。
ライブラリ『Flash UI Simple Compornents/Parts/SpecialButton_TextLabel』内にある
テキストボックス「Label_txt」と「Shadow_txt」の情報を直接編集するか、タイムライン上で
ボタンのインスタンス名.Body.Label_mc.TextLabel_mc.Label_txt.html = true;
ボタンのインスタンス名.Body.Label_mc.TextLabel_mc.Shadow_txt.html = true;
を指定すると、テキストラベルにhtmlタグも使用可能になります。
※ ただしこれは未サポートの機能なのでうまく動く保障はあんまりありません。
使われているのをまったく見たことのない
MXのボタンコンポーネントに比べれば機能の割には軽いほうだと思います。
なお、1フレームで複数個のボタンを一気に読み込むと
ボタンの初期化処理に時間がかかるため、
1フレームで初期化を行うボタンの数は5つ以内をお勧めします。
(1フレーム1個ずつだったらFPSの処理時間内に収まります)
予めスキンを作成しておいて、作成したスキンを逐次参照させる方法をお勧めいたします。
また、スキン作成も面倒であればボタン背景の透明度をすべて0に設定し、
ラベルの種類をリンケージMCに変更して
リンケージMC側で外観を直接作成した方が早いと思います。
うーん。