• ベストアンサー

mcに関して

FLASHMXを使用 ボタンを押したらmcが現れて動くというムービーを作りたいでよすがFLASH5の本を見てもうまく動きません。MXではtargetを使えないでしょうか いいアドバイスをよろしく

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

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

#1です。 おそらく書かれていることは, これでできると思います↓。」 ------------------------- on (release) { _root.map.gotoAndPlay(2); } ------------------------- Flash 5 でも,Flash MX でも(Flash 8 でも), これが普通のスクリプトの書き方です。 gotoAndPlay(2); に関してですが, これは本来ムービークリップオブジェクト(クラス)のメソッドで, ムービークリップ.gotoAndPlay(2); このムービークリップを略した形だと考えてください。 ムービークリップを略すとどうなるかというと, そのスクリプトが書かれてあるムービークリップのフレームを フレーム2 に進めます。 略さずに書くと this.gotoAndPlay(2); という意味になります。 書かれている感じ, ボタンのあるタイムラインのフレームを フレーム2 に進めたいのではなくて, _root にある map というインスタンス名のムービークリップ内を フレーム2 に進めたいのだと思うので, _root.map.gotoAndPlay(2); となります。以上です。 ~・~・~・~・~・~・~・~・~・~・~・~・~・~・~ 以下は,混乱するかもしれませんので, わからなければあまり考えないようにしてください。 おそらく参考にはならない調査結果です。 無視してくださってかまいません。 「targetPath」ってそんな風に使えたっけ??? と思って Flash 5 のヘルプを見てみました。 次の === 内は Flash 5 のヘルプからの引用です。 =========================================== targetPath シンタックス targetpath(movieClipObject); 引数 movieClipObject ターゲットパスが検索されるムービークリップへの参照 (たとえば、_root や _parent)。 説明 関数; movieClipObject のターゲットパスを含むストリングを返します。 ターゲットパスは、ドット表記で返されます。 スラッシュ表記でターゲットパスを検索するには、 _target プロパティを使用します。 Player Flash 5 以降。 例 次の例は同じです。 第 1 の例ではドット表記を使用し、第 2 の例ではスラッシュ表記を使用しています。 targetPath (Board.Block[index*2+1]) { play(); } 上記は、次と同じです: tellTarget ("Board/Block:" + (index*2+1)) { play(); } 関連項目 eval =========================================== ヘルプには以上のように書かれていますが, この内容は大嘘です。 targetPath (Board.Block[index*2+1]) { play(); } なんて使い方はできません。 Flash 5 でもできません。エラーになります。 ヘルプも時に平気でウソをつくことがあるので要注意です。 その参考にされている本も,このヘルプの内容にダマされたのかもしれません。 最初に書いたスクリプト。 on (release) { _root.map.gotoAndPlay(2); } これにあえて,targetPath を使うと次のようになります。 --------------------------- on (release) { eval(targetPath(_root.map)).gotoAndPlay (2); } --------------------------- もしくは --------------------------- on (release) { aaa = targetPath(_root.map); eval(aaa).gotoAndPlay (2); } --------------------------- しかしこんな,まどろっこしい書き方はどう考えても普通はしませんし, このように書くメリットも1つも思い浮かびません。 やはり,ターゲットムービークリップの指定に targetPath を使うのはおかしいと思います。 次の === 内は Flash MX のヘルプからの引用です。 =========================================== targetPath Player Flash Player 5。 シンタックス targetpath(movieClipObject) パラメータ movieClipObject 検索するターゲットパスのムービークリップへの参照 (_root や _parent など)。 戻り値 なし。 説明 関数; movieClipObject のターゲットパスをストリングとして返します。 ターゲットパスは、ドット表記で返されます。 スラッシュ表記でターゲットパスを検索するには、_target プロパティを使用します。 例 次の例では、ムービークリップをロードすると同時にそのターゲットパスを表示します。 onClipEvent(load){ trace(targetPath(this)); } 関連項目 eval =========================================== この Flash MX のヘルプにある通りです, これが,targetPath の正しい意味と使い方です。 難しいかもしれませんし,極たまに大嘘を書いてある場合もありますが, MX 用の本がなければ,ヘルプを頼りにする方が良いような気もします。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

Flash MX ではできて , Flash 5 ではできないことはたくさんありますが, Flash 5 でできることは,たいてい何でも Flash MX でできます。 それに, > ボタンを押したらmcが現れて動く というものは色々パターンがありすぎて, どういう状況のことを質問されているのかが全くわかりません。 また, > MXではtargetを使えないでしょうか target とは tellTarget ("") {} のことでしょうか? tellTarget は Flash MX では使用を避ける関数ですが, その前に Flash 5 で一応使用禁止にされていますからどっちにしても使わないのが普通です。 だから 「targetを使えないでしょうか」 の意味もわかりません。 良かったら, したいけどできないスクリプトを補足で書いてください。 書かれても全くわからないかもしれませんけどね。 > FLASH5の本を見てもうまく動きません。 バージョンに合った本の方が良いです。 Flash を始めて間もない方が Flash の本を買うときの最低条件です。 だいたい,画面がFlash 5 とMX では全然違うでしょう。 Flash MX の本も探せばまだどこかにあるかもしれません。 なんとか,探して買われることをお薦めします。

sachi225
質問者

補足

このようなスプリットをボタンのところ書きました インスタンス名はmapにしました on (release) { targetPath(_root.map) gotoAndPlay(2); } これで分かりますか

関連するQ&A