電子書籍の厳選無料作品が豊富!

FLASH8(Win-XP)使用者です。
オブジェクトの移動にマウスホイールを使いたいのですか、うまく動作しません。
どのようにやっても一旦「FLASH画像をクリック」しないと反応しないのです。
マウスホイールでのアクションは本来そういう仕様なのでしょうか?

以下にスクリプトを記します。

my_ls = new Object();
my_ls.onMouseWheel = function(delta, target_mc) {
ballY = _root.ball._y - (delta * 10);
_root.ball._y = ballY;
};
Mouse.addListener(my_ls);

*試したのはFP7+IE6、FP10+N7です。
FP7時にFLASH画像の周りに枠が出る現象を避けるためJavaScriptにてHTMLを書き出しています。
お詳しい方、よろしくお願いいたします。

A 回答 (1件)

> 一旦「FLASH画像をクリック」しないと反応しないのです。



これは,Flash 内の ball などの特定の画像という意味ではありませんよね。
Flash 自体を一度クリックしないと動作しないということですよね。

マウスホイールの問題ではなくて,Flash とは本来そういうものです。
Flash に フォーカス が当たっていないと,マウスイベントは有効になりません。


わかりやすい例で言うと,
マウスに限らず,キーイベントもそうです。
ブラウザ に 表示された Flash は初期状態でブラウザ側にフォーカスがあるので,
キーイベント もブラウザ側が受け取ります。
例えばブラウザのURL欄にフォーカスがあって,そこで「キー1」を押した場合,
ブラウザのURL欄が「1」になります。
Flash のボタンに,

on (release, keyPress "1") {
play();
}

などどと書いてあってもそれは無効で,ブラウザの URL 欄が 「1」 になります。
当たり前と言えば当たり前ですよね。
ブラウザ と Flash との関係以外でも,PCの仕様はほとんどそうです。


ActionScript 2.0 リファレンスガイド
「 ActionScript クラス > Mouse」
http://livedocs.macromedia.com/flash/8_jp/main/0 …
 --- 引用 ---
> Flash アプリケーションが監視できるのは、
> そのフォーカス内で発生するマウスイベントのみです。
> Flash アプリケーションは、別のアプリケーションでのマウスイベントを検出できません。
>
> イベント
> onMouseDown = function() {}
> マウスボタンが押されると通知されます。
>
> onMouseMove = function() {}
> マウスポインタが移動すると通知されます。
>
> onMouseUp = function() {}
> マウスボタンが離されると通知されます。
>
> onMouseWheel = function([delta:Number], [scrollTarget:String]) {}
> マウスホイールを回転させると通知されます。




「ブラウザに埋め込んだ Flash ムービーにキーボードフォーカスを与える」
http://www.adobe.com/jp/support/flash/ts/documen …

「JavaScript を使用して Flash にフォーカスを与える」
http://yoshiweb.net/blog/index.php?itemid=67


上の方の Adobe のページにある

> 回避策 1
> ユーザーに Flash ムービーをクリックしてもらう。
> Flash ムービーの最初のフレームにボタンを追加して、
> ユーザーがそのボタンをクリックしてから、
> 処理を続行してもらう方法が考えられます。
> 例えば、"スタート"、"ログイン"のボタンを用意します。
> これらのボタンをクリックすると Flash にフォーカスを与えることが可能です。

今回のご質問はこの方法はとれないのかもしれませんが,
この「スタート」ボタンを用意する方法がが簡単で,よく用いられる方法です。
ゲームなどで,意味のない「スタート」ボタンがあったりする場合がありますが,
ボタン自体に意味はなくても,
Flash に フォーカスを与えるという意味で存在しているケースもあります。
    • good
    • 0
この回答へのお礼

なるほど!わかりました。
そのようにさせていただきます。
ありがとうございました。

お礼日時:2006/09/01 10:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!