どもども。今日はいまいち役に立たなそうだけど発見があったので記録します。
FLVPlaybackコンポーネントってヤツが居ると思うんですが。
自分はたいしてスクリプトを書けないくせになんとなく「コンポーネントって嫌だなぁ」
という先入観があります。 使うのは楽なのですが、それはなにかバグがあってもブラックボックスすぎて手におえない感じ・・・。
で、先日恐れていた事がおこりました。 お知り合いの方から相談された件なのですが
Flashのステージエリア全面にFLVPlayback コンポーネントが配置されており、
コントロール部分をautoHideに設定していても、ブラウザやOSによって? コントローラー部分が非表示にならないという物です。
症状としては簡単で、単純にmouseOutがとれてない感じなのですが・・・。
で?
どうすれば直せるかなーと思ったのです。
まず
■skinを消す作戦
_flvPlayback.skin = "スキンのurl";
で設定したスキンを
_flvPlayback.skin = "";とか
_flvPlayback.skin = null;とかで一回解除して
↓再度セット
_flvPlayback.skin = "スキンのurl";
みるからに良くなさそうでしたが案の定挙動がかなり微妙でした。
(シークバーがリセットされた後、現在の位置に戻る様な挙動をします。)
そいでもうダメかなと思って、
■リーサルウェポン
ステージサイズをFLVPlayback コンポーネントよりも数10px大きくすれば
とりあえず解決するよな...。
となりましたが、納得がいかないので更に調べを進めると。
_flvPlayback.skin で設定したswfはどうやら
_flvPlayback.skin_mc というインスタンス名で配置されている様でした。
そこまで分かればこっちのもんだぜ!!!!!!!
マウスのx/y座標を確認し、ステージ内かどうか判断させつつ、一定タイミング以上同じ座標に居る場合はコントローラーの skin_mc を_alpha=0 なり_visible = falseなりしていただいて再び動き出したら再度表示させてあげる感じでやればとりあえず解決しますた。
いや、、、他に方法あるかもなんですけど...。
as3だとEventまわりでできちゃいそうなんですけども。
うーむ。非常にレベルの低いポストですね(滝汗
サンプルのコードを掲載しようと思ったのですがあまりにも糞っぽいので
やめておきますwww ではまたお会いしましょう。(o'∀'o)/