• ベストアンサー

記述の無いアクションが動く??

記述が無いと言うより急に消えてしまったアクションが動作していて編集することが出来なくなりました。いくつかのアクションがあり全部消すとその見えないアクションも動かないのですが、一つでもアクションを入れるとまた動き出します・・初心者なので単純なミスがあるのだとは思うのですが、どなたか分かられる方よろしく御願いします。 FlashMXでボタンに付けた下記のアクションが動いています。 on (release) {  tellTarget ("../link") {  gotoAndStop(10);  }

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.2

#1です。 良くはわかりませんが, インスタンス名 link のムービークリップのタイムライン制御ができないのですね。 ムービークリップやボタンが入れ子になっていて, 親か子のスクリプトが残っているのかもしれません。 また, Flash MX 以上ではさらに, on (release) {} ではなく, ムービークリップ.onRelease = function() {} や ボタン.onRelease = function() {} なども使えますから, 他に同じアクションがかぶって定義されている可能性もあります。 その, link や ボタンが見える(存在する)フレームを Flash で閲覧した状態で, 「ウィンドウ」→「ムービーエクスプローラ」を選択して, 「ムービーエクスプローラ」を表示させてみてください。 すると階層構造やスクリプトがツリー構造で見えます。 ツリーの 「+」 分岐をクリックして行くと, 各ムービークリップ内のインスタンスに書かれたスクリプトなどがわかりやすく表示されます。 この「ムービーエクスプローラ」で, 同じようなスクリプトが複数箇所書かれていないかどうかを見てみてください。 複数箇所に同じようなスクリプトが重なって書かれていれば, 片方を消しても,もう片方が動作してしまします。 もしそうであれば, 不要なスクリプトを削除してください。

ke-i-chi
質問者

お礼

分かりにくい質問に丁寧に答えて頂きありがとうございます。 ムービーエクスプローラを見たら階層やアクションがよく分かりました で、その勝手に動いていたと思っていたアクションも見つかりました!! ほんとにありがとうございました。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

見えないアクションが動く,動かない...。 いったい何が動いたり動かなかったりするのでしょうか? 例えば, インスタンス名 a_mc というムービークリップが再生するとかしないとか, インスタンス名 a_txt というテキストフィールドに文字が表示されるとかされないとか, インスタンス名 a_btn というボタンがだんだん透明になるとかならないとか, 変数 a に 10 が加算されるとかされないとか, メインムービー(_root) の再生がストップするとかしないとか,  … など … など … そういう書き方をしていただかないと, 見えないアクションが動く,動かないと書かれましても何のことやらさっぱりわかりません。 また,具体的な現象を書いていただいても, 「どこかでそのように動作するようにしてあるからそうなる」 としか答えられない気もします。 また,その現象が, ボタンのスクリプトとどう結び付いているのでしょうか? > いくつかのアクションがあり全部消すと これはいったい, どこに書いたアクションのことを書かれていらっしゃるのでしょうか? 書かれていらっしゃるボタンのスクリプトのことでしょうか? この辺もさっぱりわかりませんね。 また, 見えないアクションは "動いた方が良い" のか,"動かなかった方が良い" のかその辺もわかりません。 =/=/=/=/=/=/=/=/=/=/=/=/=/= しかし, 書かれていらっしゃるスクリプトの 意味 や 解説 を書いたり, 書かれていらっしゃるスクリプトの 悪い点 を指摘することでしたらできますよ。 まず,致命的ミスですが,一目瞭然,閉じカッコ } が足りません。 つまり, on (release) { ←このカッコが閉じられていません。 「//」の付いたコメント行をつけ足して,閉じカッコ } も入れると次のようになります。 ---------------------------- // このボタンをクリックしたとき on (release) { // 親階層の link というムービークリップに命令 tellTarget ("../link") { // フレーム10 に行って止まれ gotoAndStop(10); } } ---------------------------- このスクリプトから,次のことがわかります。 スクリプトを書いたボタンがボタンシンボルのインスタンスである場合, そのボタンは何かのムービークリップの中に入っていることがわかります。 また, ボタンの入ったムービークリップと同じ階層に「link」というインスタンス名のムービークリップがあり, その ムービークリップlink は 10フレーム以上のタイムラインを持つムービークリップであることがわかります。 階層を図示するとこうなります。   _root(またはムービークリップ)     ├ ムービークリップ(インスタンス名 link)     └ ムービークリップ(インスタンス名 不明)         └ボタン (スクリプトが書いてある) ここまでが,致命的なミスとその修正と意味です。 致命的ミスではありませんが, まだ致命傷になり得るスクリプトが存在しています。 「tellTarget」 これは Flash MX (Flash 5 以降)では使用を禁止されている関数です。 「Flash 4 以前の SWF をパブリッシュする場合」 もしくは, 「携帯Flashである Flash Lite 1.0,1.1 用の SWF をパブリッシュする場合」 以外では使用禁止です。 そもそも, tellTarget を使うと 「/」 のスラッシュシンタックスを使わざるを得ませんから, 文法的に ActionScript 1.0 以上とはそぐわないものになります。 また,いまどき, 「../link」 の意味がわかる人はほとんどいませんよ。 「../link」 は 「this._parent.link」 もしくは 「_parent.link」 です。 ボタンなどから見た相対パスでターゲットを示すときに使いますね(使っていましたね)。 相対パスではなく絶対パスの場合は次のようになります。 「/link」の場合は,「_root.link」です。 Flash MX (Flash Player 6 以上)で, 正常に動作させるには次のようなスクリプトに変える必要があります。 ---------------------------- // このボタンをクリックしたとき on (release) { // 親階層の link を フレーム10 に進ませて止める this._parent.link.gotoAndStop(10); } ---------------------------- 指摘や訂正をしても, おそらく「見えないアクションが動く,動かない。」 という現象の解決にはならないと思いますが, 一応以上が, 書かれていらっしゃるスクリプトの 意味 や 解説 や 指摘 です。 =/=/=/=/=/=/=/=/=/=/=/=/=/= 以上で一応終わろうかと思ったのですが, ここまで書いて,ふと思ったことがあるので書いておきます。 tellTarget を使っていらっしゃるということは, その昔,Flash 3 もしくは Flash 4 で作られた FLA ファイルか, 古いサイトや古いCDの FLA ファイルを Flash MX で開いて使用されているのではないでしょうか? Flash 3 もしくは Flash 4 のころのアクションはこんな感じ↓で, ---------------------------------- On (Release)   Begin Tell Target ("../link")     Go to and Stop (10)   End Tell Target End On ---------------------------------- そのファイルを Flash MX で開くと,自動変換されてこうなります↓。 ---------------------------------- on (release) { tellTarget ("../link") { gotoAndStop(10); } } ---------------------------------- 上の場合だと普通の変換だと思いますが, 時には,無茶な変換がされて(たいてい無茶な変換になる), なんとかギリギリ動くのですが,場合によっては動かないこともあります。 Flash 3 もしくは Flash 4 のころの FLA ファイルを Flash MX で開いた場合は, 自動変換だけににまかせるのではなく,さらに手動で変換してください。 また,ここからが重要ですが, Flash 3 もしくは Flash 4 のころの FLA ファイルを Flash MX で開いた場合は, パブリッシュ設定が,Flash 3 や Flash 4 などになっています。 パブリッシュ設定が,Flash 3 や Flash 4 などになっていると, Flash MX で使えるようになったスクリプトや機能が使えませんから,操作上の不具合は多発します。 まずパブリッシュ設定が Flash Player 6 になっているかどうかを確認してみてください。 ご質問の不具合は, 「古いスクリプトの使いすぎ」 か 「パブリッシュの設定ミス」 による可能性が大きいように思います。

ke-i-chi
質問者

お礼

回答ありがとうございます。勉強せずに自己流で作っていたので・・・ 上手く説明が出来ずすいません、 昔にFlash5で作ったファイルをMXで編集していました(汗)パブリッシュの設定も5になってました。 Flashの階層が全く把握できてないのですが。ボタンに付けたアクションでインスタンス名linkと言うムービーを動かすアクションを入れていたのですが、それを編集しようとしたらアクションが無くなってしまったのです、ですがボタンを押すとそのアクションが動くので困っていました。ってかやはり同じ説明しか出来ないみたいです・・・ とりあえず一から勉強してみます、ありがとうございました。

関連するQ&A