- ベストアンサー
Paraflaでカーソルを変化させたくないのですが
ParaFlaで脱出ゲームをつくっています。 不透明度を0%にした画像をボタンにして家具の隙間や裏に貼り付けているのですが、 ボタンの上にくるとハンドカーソルに変わってしまい、隠していたはずの画像が ここです!と言わんばかりに指をさされて困っています。 検索してuseHandCursor=false;まで導いたのですが、うまく使いこなせません・・・。 カーソルを矢印のままボタンを機能させる方法を教えていただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ParaFla を使用する上では 根本的な構造から変える必要があるので少々ややこしいですよ。 まず..., > 不透明度を0%にした画像をボタンにして > 家具の隙間や裏に貼り付けている と書かれていますが, ボタンは階層を持たない上に onClipEvent ハンドラの使用ができませんから ボタンにはインスタンス名を付けてそのボタンインスタンスに対して 「ハンドカーソルに変化させない」というプロパティを設定する必要があります。 しかし! ParaFla ではなぜか ボタン にインスタンス名が付けられません(多分)。 したがってボタンに対してActionScriptで「ハンドカーソルに変化させない」というプロパティを設定することができません。 (Adobe Flash や Suzuka ではボタンにインスタンス名を付けることができます。) ですから ParaFla では まず画像をボタンにするのではなく ファイルリストに作成したスプライトの中に画像を入れて そのスプライトをイベントリストに追加してボタンとして使う必要があります。 スプライトは階層を持つ上に onClipEvent イベントハンドラが使えますし さらにインスタンス名も付けられますし さらにボタンと同じ on イベントハンドラも使えますから 結構たくさんの方法を使うことができます。 たくさんの方法を使うことができますが 元はボタンを使おうとされていたことからその延長路線で考えて スプライト自体に onClipEvent イベントハンドラ と on イベントハンドラ を書くのが 元をあまり変えない方法だと思います。 イベントリストにある画像を入れたスプライトのプロパティより そのスプライト自体に書くスクリプト例です↓。 //----------------------------- onClipEvent(load){ //このスプライト上でハンドカーソルに変化させない this.useHandCursor = false; } - on(release){ trace("実際にはココで何か実行させる"); } //----------------------------- ※参考【添付図】↓ なお スプライトは階層を持つため 上記スクリプト中の trace("実際にはココで何か実行させる"); の部分に this などを使った場合は そのスプライトを指しますからターゲットパスなどの変更は要注意です。
お礼
画像付きで丁寧な回答ありがとうございます! おかげさまで無事にハンドカーソルに邪魔されず ゲームを進めることができるようになりました。 本当にありがとうございました!