FLASHのサンプル本(http://books.yahoo.co.jp/bin/detail?id=31171915)のパーフェクトジクソーパズルがあるんですが
この中の.flaファイルから.swfへパブリッシュした時はきちんと動くんですが、
書き出した.swfを新規の.flaファイルにMCに入れ子にして
loadmovie("pazzlu.swf")としてまた.swfでパブリッシュすると今度はピースが吸着しなくなってしまいきちんと動作してくれません。
初心者なのでA.S.が全く書けないので原因が全くわかりません。
きちんと動作させる方法ってどうするんでしょうか?
環境はMX2004PROでOSはmac10.3.5です。
ご教授よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ジグソーパズルの fla ファイルがお手元にあるようですので、これを開き、スクリプトが設定されていると思われる箇所を、よく見てみてください。
スクリプトを設定できる場所は、
・タイムラインのフレーム
・ムービークリップのインスタンス
・ボタンのインスタンス
この3箇所です。
スクリプトが設定されているフレームには、「 a 」のマークが付きます。スクリプトを探す時の目安にしてください。
スクリプトの中に、1箇所でも、
_root.*** = ・・・;
というように、_root を指定している箇所がありませんでしょうか?
_root は通常は、ムービーそのものを指します。
しかし、他の swf ファイルにあるムービークリップの loadMovie により読み込まれた場合は、_root の指す対象が、読み込みを実行した側の swf ファイルに変わってしまいます。
例えば、puzzle.swf 内のスクリプトで _root を使った場合、この swf ファイルを単体で動かすと、_root は puzzle.swf を指し、スクリプトは正常に動きます。
これを、menu.swf ファイルにある game_clip というムービークリップの中に、loadMovie で読み込むとします。
すると、puzzle.swf で使われている _root はmenu.swf を指すようになります。そのため、単体で動かした時は正常に動いていたものが、menu.swf に読み込んだ途端に動かなくなるという現象が発生します。
Flash Player 7 、つまり Flash MX 2004 以降からは、このように _root の指す対象が変わることで起きるトラブルを解決するために、_root の指す対象を固定する” _lockroot ”というプロパティが使えるようになりました。true にすると、_root は引き続き、元のムービー自身を指すようになります。
様々な書き方がありますが、一番簡単なのは、puzzle.swf で _lockroot を true にすることです。
ジグソーパズルの fla ファイルを開き、メインのタイムラインのフレーム1に、
this._lockroot = true;
というアクションを追加して、パブリッシュしてみてください。
なお、作品サンプルを改造する場合は、コピーをとって作業し、オリジナルは原形のまま保存しておくようにしましょう。失敗した時や何かあった時に、オリジナルが保存されていれば、すぐに元に戻すことができます。
ありがとうございます。
でもまだきちんと動作しないです・・・。
パズルの.flaにまだthisや_parent._parentが
あるのが原因でしょうか?
No.2
- 回答日時:
this や _parent は、自分自身や親(1つ上)の階層を指す、相対的な表現です。
ジグソーパズルの swf を単体で動かした時に正常に動いているようであれば、this や _parent._parent が原因ではないと思います。
あまり使われない表現なので、可能性は低いと思いますけど・・・
もしかして、_root の代わりに _level0 という記述がありませんでしょうか?
_level0 は通常は _root と同様に使えますが、今回のように loadMovie で他のムービーに読み込まれた場合は、_level0 は loadMovie を実行したムービーを指すようになります。
_level0 が使われているとすると、_lockroot を true にしても、_level0 を指す対象をジグソーパズルの swf 自身に固定しておくことができません。_level0 の部分を全て _root に置き換えれば、_lockroot で制御できるようになります。
単体では正常なのに、loadMovie で読み込むと動かなくなるのは、ピースの吸着を判定する部分で、読み込まれた時に参照するターゲットが変化して、目的のターゲットを正しく指定できなくなっていることが原因ではないかと思います。
読み込みによりターゲットパスが変化するのは、_root か _level0 を使った表現だと思うのですが。
これ以外の原因だと、ちょっと心当たりがなく、問題のスクリプトを見ないことには分からないのですが、、、
よろしければ、ジグソーパズルの、ピースを吸着する処理と思われるスクリプトを、補足していただけませんでしょうか。大体でも構いません。
スクリプトがあちこちに書かれていると、どれが何の処理か分かりにくいかもしれません。解説書に掲載のサンプルでしたら、どこで何の処理をしているかは書籍の方で詳しく解説されているかと思いますので、その説明を参考に探してみてください。
パズルの.flaでなく読み込み先の方の.flaに
_lockrootのスクリプトを書いたら正常に動作しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 友達・仲間 同じクラスのAちゃんという子から私のことが好きな違うクラスの男の子のSくんがいると言われた 1 2022/08/25 11:38
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- 友達・仲間 勘違いで終わる話ですか? 3 2022/12/28 08:54
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- 友達・仲間 彼氏持ちの女子と下校した 1 2022/12/14 22:09
- 友達・仲間 女子にキープされているのか… 1 2022/11/12 13:13
- iOS iPhone用動画保存アプリiCapのデータは外付けUSBメモリに保存できますか? 1 2022/10/18 17:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SNMPの標準MIBについて
-
オブジェクトのランダムな位置表示
-
else if文の順序を変えることに...
-
AS3 MC内ボタンクリックでシー...
-
python ボタンを押すと複数の関...
-
pythonの画像の貼り付けについて
-
Pythonのtkinterについて
-
五芒星は、悪魔崇拝とどういう...
-
VBScriptでMsgBoxのYesNoボック...
-
photoshopで書いた四角の枠の中...
-
シンボル化解除の方法
-
文字をスクロールできるGIFアプリ
-
プログラミング、アーキテクチ...
-
DataTableの件数を取得したい
-
楕円の軌道に傾斜をつける方法...
-
マウス自体の移動量の取得
-
【VB.NET】別Formのボタンが押...
-
別のアプリケーションのテキス...
-
画面の範囲選択
-
ダブルクリックと2回クリックの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
関数をプロパティとして代入する際
-
ボタンの上にマウスを置くと虫...
-
[FlashMX2004]動的にファイルを...
-
パーセントで配置したフラッシ...
-
ADに参加していないPCからADサ...
-
メニュースクロール
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
レイヤーに配置されたムービー...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報