つい集めてしまうものはなんですか?

ActionScript2.0でプログラミングしています。

ブラウザのフラッシュ画面上でマウスホイールによる垂直スクロールをさせたいのですが、どのようにしたらいいでしょうか?

マウスホイールの回転イベントは、Mouse.onMouseWheel() で拾えることはわかっているのですが、その際の処理としてどのようにすれば画面全体を垂直にスクロールさせることができるのでしょうか?
よろしくお願いします。

A 回答 (2件)

> Mouse.onMouseWheel() で拾えることはわかっているのですが、



閲覧者が Mac 環境であれば拾えないと思いますので根本的に期待しない方が良いですよ。
(動作しないことを前提として,装飾の遊び程度で使うようにするのが賢明。)


> どのようにすれば画面全体を垂直にスクロールさせることができるのでしょうか?

画面全体をムービークリップで作成します。
つまり _root を動かそうとするのではなくて,
_root に配置した ムービークリップ を動かすのです。

ムービークリップが たとえば 5×5px の大きさでしたら,
その 5×5px のムービークリップを動かすようにするということです。
ムービークリップ が ステージをはみだすような大きさでしたら,
そのステージからはみだすような大きさのムービークリップを動かすということです。

この回答への補足

ご回答ありがとうございます。

ActionScript3.0でも、処理方式は2.0と変わらないと考えていいのでしょうか?
よろしくお願いします。

なおMacの件、了解しました。

補足日時:2010/04/06 12:32
    • good
    • 0

#1です。



ActionScript3.0でも基本的にすることは同じです。
「インスタンス」の「座標」を「スクリプトで動かす」です。

メインタイムラインは AS2 なら _root で, AS3 なら root です。
また AS2 では必須の MovieClip(ムービークリップ) を, AS3 であるなら Sprite(スプライト) や Loader(外部ファイルロード用インスタンス) に置き換えることはできます。
Sprite とは ActionScript でしか作成できない MovieClip の複数フレームなし版(単フレームのみ版)です。

とにかく Sprite であったり Loader であったりするようなものでも,
ステージやタイムラインに配置する インスタンス には変わりないわけです。

仮に AS3 の root の y座標 を操作できたとしても(できますが...),
階層が 1つ上がる だけのことで,管理や面倒が多くなるだけですから,そういう発想はまずしないでしょう。
root に配置したインスタンスや, root に配置したインスタンス内のインスタンス の 座標 操作するのが普通です(当たり前です)。



良いですか。
MovieClip(ムービークリップ) や AS3 の Sprite(スプライト) などをスクロールバーのようなもので動かすのです。
つまり,
スクロールバーのようなもの(単なる ▲ボタン や ▼ボタン であってもかまいません)でインスタンスの座標を動かすのです。
それができてこそ,次に,
「ついでにマウスホイールで インスタンス の座標を動かしてもいいかなあ。」
と考えるのです。

_root や root などを動かしてしまうと,厄介になるだけでしょう。
単に,MovieClip(ムービークリップ) や AS3 の Sprite(スプライト) などの中に動かしたいものを入れれば良いだけなんです。
たったそれだけのこと。
どーーーーーーーーーう 考えても,それが簡単でスムーズではありませんか?

そのインスタンスの AS2 なら _yプロパティ,AS3 なら yプロパティ を操作すれば良いだけです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

うまくいきました。
助かりました。

お礼日時:2010/04/07 10:31

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


おすすめ情報