• 締切済み

mypage??

今、FLASHの勉強をしているのですが、 こんな記述に出会いました。 on (release) { _root.mypage = 5; _root.play(); } この中でmypageというのが、あります。 探してみましたが、インスタンス名にmypageを持つものは無いようです。 mypageとは何でしょうか? これは特殊な処理なのでしょうか? 5は配列から取り出しているようです。 なにぶん初心者なものでわかりやすく御回答いただけますでしょうか。 よろしくお願い致します。

  • Flash
  • 回答数3
  • ありがとう数1

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#2で回答した者です。 #2の補足に関してなのですが, on (release) { _root.mypage = 7; _root.play(); } と書かれたボタンをクリックしたために, mypage に 7 という値が代入されて _root のムービーがしばらく進み, textarea_mc.gotoAndStop(mypage); pic_mc.play(); と書いてあるフレームにたどり着いたために mypage = 7 が有効になって textarea_mc.gotoAndStop(7); pic_mc.play(); になったというのではないのですか。これが普通の流れです。 そうではなくて,何もクリックしないのに, textarea_mc.gotoAndStop(mypage); pic_mc.play(); と書かれたフレームまで _root のムービーが進んで, 自動的に textarea_mc が7フレームでストップするということですか? どうも,どんな状態のファイルなのか頭を抱えてしまいますが。 別に変数で指定しなくても,textarea_mc を7フレームにすることは可能です。 textarea_mc というムービークリップに onClipEvent (load) { this.gotoAndStop(7); } と書いてあれば,変数の指示がなくても,textarea_mc が表示されたときに自動的にフレーム7が表示されますし, textarea_mc というムービークリップ内のタイムラインのフレーム1のスクリプトに gotoAndStop(7); と書いてあってもtextarea_mc が表示されたときに自動的にフレーム7が表示されますし, _root のタイムラインに, textarea_mc.gotoAndStop(7); と書いてあっても同じです。 また他のムービークリップにデフォルトで textarea_mc をフレーム7に行かせるスクリプトが書いてあるのかもしれません。 これも様々な方法があるので特定はできませんが, mypage = 7; が定義されなくても色々な方法で textarea_mc をフレーム7に行かせる方法はあります。 あと,mypage = 7; と書かなくても _root のムービーの何処かに, 「7」とすでに入力されている mypage という変数名のダイナミックテキスト,またはテキスト入力のテキストフィールドが置いてあっても, mypage = 7; と同様の意味になります。 う~ん… せっかく補足をしてもらっても,やはりいろいろな可能性がありすぎて,何とも言えません。 すみません。

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1で回答した者です。 on (release) { _root.mypage = 5; _root.play(); } mypage がインスタンス名だとすると, 5 と言うのは何に当たるのでしょうか。 人間も理解できませんし,PCも理解できません。 _root.mypage._alpha = 5; これであれば,理解できます。 mypage のアルファ(透明度)というプロパティを 5 にするということです。 _root.mypage._x = 5; これでも理解できます。 mypage のx座標というプロパティを 5 にするということです。 「あなたは 5 です。」 と言われても何が 5 なのか理解できませんよね。 「あなたの学年は 5 です。」「あなたの部屋は 5 です。」というのならまだ理解できます。 ですから,mypage はインスタンス名ではなくて単なる 値の入れ物,つまり変数ということになります。 「mypageとは何でしょうか? これは特殊な処理なのでしょうか?」 と書かれていますが,変数名は特殊な処理を実行する名称であったり,スクリプトと同じ名前は使用できません。 変数名は独自で作ったプログラム上意味不明な文字列にしなければなりません。 そのために,myDate というように前に my を付けてみたり, スクリプトとかぶりそうであれば, goto_frame のようにスクリプトにありそうな言葉をアンダーバーでつないで,わざとプログラム上意味不明,でも人間が見たら意味がわかる変数名にします。 #1の補足に 「確かに動作は代入される値によって変わります。」 と書かれていますが, この変わる動作の部分がわからないので,回答する側としても#1のように漠然とした回答しかできません。 変数はどこでも使うので,限定はできません。 書かれているスクリプトは on (release)  で始まっています。 質問では説明されていませんが, 『これは明らかにボタンクリックで動作するスクリプト。 つまり,ムービークリップ,もしくはボタンシンボルに書かれたボタンとして機能するスクリプトである。』 そのくらいしかわかりません。 現物をみればすぐわかるのでしょうがそれもできないので,あとは推理するしかないです。 ~~~以下は推測になります~~~ このボタンをクリックすることによって, _root.play(); する。 つまり,このボタンがクリックされるまでは,メインのアニメーションは停止していて, このボタンをクリックされることで,凄く大切なメインのタイムラインを動かす重要なボタンである。 その前に _root.mypage = 5; でと限定された値が変数に入る。 ということは on (release) { _root.mypage = 1; _root.play(); } や on (release) { _root.mypage = 2; _root.play(); } というボタンも存在するのではないだろうか。 mypage といういかにも,サイト内のページを示すような変数名。 次に行くページを _root.mypage = 5; で決めてしまった上で, _root.play(); でメインのアニメーションを動かしている。 getURL する前の共通で見せたいアニメーションを動かす為のボタン,もしくは loadMovie で mypage というSWFの時間稼ぎではないか。 ~~~ここまでが推測です~~~ 例ですが。 _rootのタイムラインの最後のフレームに getURL(mypage + ".html"); と書いてあれば,このムービーが終了次第, 「mypage + ".html"」つまり「5 + ".html"」つまり, 「5.html」 にジャンプします。 _root のタイムラインの何処かに _root.mymc.loadMovie(mypage + ".swf") と書いてあれば,そのメインのアニメーションが動いている途中か,メインのアニメーションが動き終わったころに, 「mypage + ".swf"」 つまり,「5 + ".swf"」つまり,「5.swf」がmymc というインスタンス名のムービークリップに読み込まれます。 持たれているFLAファイルは上で推測したり,説明したように単純なものではないかもしれません。 しかし変数はこういう具合につかうものです。 どういう場合かわかりますか。 この場合,何が何でも _root.play();  でメインのアニメーションが動作させたいのです。 その後に,クリックされたボタンによって結果が変わるのです。 どのボタンをクリックしても共通のアニメーションを表示させたくて, そのアニメーションが動き出した後に,ボタンによって結果を変えたいのです。 もし,変数を作らないで,同じムービーの後に違う結果を表示させるのであれば, 同じムービーを違うフレームに何度も作らないとならなくなります。 もし getURL であったとすると, 2~51フレームは getURL("1.html"); 用のアニメーション 52~101フレームは getURL("2.html"); 用のアニメーション     … 202~252フレームは getURL("5.html"); 用のアニメーション 1.htmlページに行きたいボタンには on (release) { _root.gotoAndPlay(2); } 2.htmlページに行きたいボタンには on (release) { _root.gotoAndPlay(52); } 5.htmlページに行きたいボタンには on (release) { _root.gotoAndPlay(202); } アニメーションは共通で,最後の結果だけを変えたい場合このに大変なことになります。 それは,労力においても,ファイル容量においても全てにおいて無駄です。 だから変数を使うのです。  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 長くなりましたが, _root.mypage = 5; を見てそれが何なのかはこちらでは判断できません。 色々な場所で,色々な用途で変数は使います。 またFlashは変数の宣言をしなくても,勝手に作った変な文字列であれば,勝手に変数であると判断しますから, var mypage のようなものがどこかにあるとは限りません。 変数は,宣言しなくても良いので楽ですが,他の人が見たときに何の変数であるか判断しにくい面があります。

tango7
質問者

補足

> #1の補足に > 「確かに動作は代入される値によって変わります。」 > と書かれていますが, > この変わる動作の部分がわからないので,回答する側> としても#1のように漠然とした回答しかできません。 テキストエリアのフレームに対応しているようです。 別にボタンの定義があり、そこではそれぞれのボタンに 1~7が割り振られています。 on (release) { _root.mypage = 1~7; _root.play(); } 例えば7のボタンを押すと、それを割り振られたTEXT AREAのフレーム7が呼び出され、文章が表示されます。 質問ついでになりますが、mypageと書かれた変数を見つけ出すことができません。 変数を探すのに良い方法はないでしょうか? また、actionと名づけられたタイムラインには、 textarea_mc.gotoAndStop(mypage); pic_mc.play(); という指定があり、mypage = 7 という指定はないにもかかわらず、TEXT AREAの7フレーム目が呼び出されているようです。 これはどういうことでしょうか? 御回答よろしくお願いします。

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

おそらく変数名です。 その変数 mypage に 5 が代入されることによって, その後のインスタンスの動きが変わる。 もしくは,getURL するURLが変わる。 もしくは getURL でGETかPOSTによって渡される変数の値が変わる。 もしくは loadMovie で渡される変数の値が変わる。 のうちどれかの可能性が高いです。

tango7
質問者

お礼

なるほど。 確かに動作は代入される値によって変わります。 変数にmypageという値を見つけることはできなかったのですが、勉強不足なんでしょうね...。 ありがとうございます。

関連するQ&A

  • loadMovieNumでの指定方法

    Flash初心者です。よろしくお願いします。 現在レベル0(_root)にMCをつくり”gaib”というインスタンス名をつけました。 レベル”0”にボタンがあり、クリックするとレベル1にswfファイルが読込まれるようになっています。そしてこのswfファイルにはボタンが置いています。 このレベル”1”のボタンを押すとレベル”0”のMC(gaib)にswfを読込むようにしたいのですが、どのように指定すればよいかわかりません。 試したのは、レベル1のボタンに on(release){ _root.gaib.loadMovieNum("swf/001.swf",0); } というのと、 on(release){ _root.loadMovieNum("swf/001.swf",0) _level0.gaib; } しかしだめでした。 どなたか詳しい方、ご指導お願い致します。

  • flashで、レベルの違うボタンから外部swfファイルの読み込み

    flash初心者のkiyuです。 メインのflashサイトに外部swfファイルを読み込みたいのですが、上手くいきません。 1.mcはrootにおいてあります。 2.ボタンは2つあり、1つはおなじrootの同じステージ内。そして、2つ目のボタンは違うレベルにあります。 3.同じrootにあるボタンは読み込み可能。でも、違うレベルにあるボタンは読み込み不可。 コードは、 on(release){ _root.gotoAndPlay("フレーム名"); _root.mcのインスタンス名.loadMovie("外部ファイル名.swf"); } です。 いろいろ思考錯誤をくりかえしたのですが、どうにも上手くいきません。。。 よろしくお願いします。

  • ボタンを押すとテキストフィールドにテキスト表示

    キーボードのボタンシンボルを作り、ボタンを押すと用意してあるテキストフィールドに文字または数字が表示されるようにしたいのですが、どうしたらいいのでしょうか? textというインスタンス名のダイナミックテキストを準備し、ボタンに on (release) { _root.text = "あ"; } と記述しても上手くいきません。 ご伝授の程宜しくお願い致します。

  • FLASHで印刷ができません

    FLASHで印刷ができません。 ボタンを押しても、何も反応がありません。 Windowsの印刷ダイアログすら出ません。 ・状況 プリントボタンを作りました。(MC) MC内に以下のコードを書きました。 on (release) { printAsBitmap("_root.square", "bmovie"); } squareとはインスタンス名です。 外部画像(jpg)を読み込むMCになります。 シーンにそのまま置いてあります。 お手数をお掛けしますがよろしくお願い致します。 ・環境 FLASH MX Windows2000

    • ベストアンサー
    • Flash
  • ムービーをクリックしてボタンを動かしたい

    FLASH MX 2004を使っているAction Script初心者です。 動いているb01というボタンをクリックすると、m02というムービーが表示され、b01とm02はストップし、m02をクリックするとm02は消え、b01が再度動き出すということをしたいのですが、b01とm02のストップまではできたのですが、ストップしたb01を動かすことができません。 【b01】 on (release) { _root.m02._visible = true; stop(); } 【m02】 onClipEvent (load) { this._visible = false; } on (release) { _root.m02._visible = false; _root.b01.play(); } いろいろと間違っているかも知れませんが、よろしくお願い致します。

    • ベストアンサー
    • Flash
  • flashmx2004でのダイナミックテキスト内印刷

    どうもはじめまして、flashの初心者です。 どうしてもできないコトがあるので質問させていただきます。 外部からダイナミックテキスト内にテキストファイルを読み込んでその読み込んだテキストのみを印刷できるのでしょうか? on (release) { print("InstanceName_2","bmax"); } や on (release) { getURL("print:InstanceName_2"); } では、全体が印刷されてしまいます。 環境はWINXP・2004MXです。 ちなみに「InstanceName_2」はダイナミックテキストのインスタンス名で上記スクリプトはボタンに記述しております。 printjobを使用してやってみてもできませんでした。 ムービークリップはできるみたいなんですが。。。 皆様の知恵をお貸しください。それでは宜しくお願いいたします。

  • 携帯FLASHのスクリプト

    アクションスクリプト初心者です、質問よろしくお願いいたします。 ランダムでまばたきするなどの簡単なループアニメをflash4(MX)で書き出して、携帯で観覧できるアニメーションを作っています。 アクションスクリプトの勉強も兼ねて、そのループアニメに「1」ボタンを押すと花がフェードインして消える、と言ったボタン対応のアニメーションに挑戦中です。フレーム1でstopさせて、フレーム2にそれぞれインスタンス名をつけたシンボルを設置させています。ボタンにはこんな風に書いてみました↓ on (keyPress "1") { _root.hana.play(); } on (keyPress "2") { _root.hoshi.play(); } on (keyPress "3") { _root.heart.play(); パソコン上ではちゃんと動いてくれたのですが、flash4では対応していないスクリプトがあるようで携帯では動いてくれませんでした。 そこでお教え頂きたいのですが、このようなボタン(キー)に反応したアニメを作る場合flash4(flash lite)ではどのようにスクリプトを書いたらいいのでしょうか…? 携帯向けフラッシュを作成された事のある方、FLASH4に詳しい方、どうかご教授よろしくお願いいたしますm(__)m

    • ベストアンサー
    • Flash
  • オブジェクトアクションの設定について

    FlashMXでバナーを作成する際、オブジェクトアクションの指定があり、ヘルプを読んで設定しましたが、初心者なものでわからない点が多々ありました。初歩的な質問ばかりですみませんが・・・わかる方教えてください。 Q1.オブジェクトアクションは、インスタンスごとに設定するとあったので下記のように行ったのですが・・・ (1)シンボルを配置したフレームをクリックして、 (2)インスタンスをクリックして、 (3)プロパティでグラフィック(作成したのはすべてグラフィックシンボルでした)をボタンに変更して、 (4)アクションパネルにスクリプトを記入する。 これを全フレーム内のインスタンスすべてに 繰り返す、というのでよかったのでしょうか? 長いフラッシュだと大変な作業ですし、もしかしたら間違っているのではと思っています。。 Q2.グラフィックシンボルなのに、ボタンに変更しないとスクリプトが書き込めないのはなぜですか。 Q3.ボタンにはインスタンス名を書き込む欄が出てきますが、これはどんな役割があるのでしょうか。 Q4.スクリプトは、 on (release) { getURL(_root.clickTAG, _root.targetTAG);} という内容ですが、これの正確な意味を教えてください。

    • ベストアンサー
    • Flash
  • flashで切り替わるバナーの外部画像を全部読み込んでからスタートする方法

    どなたかご教授お願いします。 4つの画像が切り替わっていくものをFLASHで作成しており、 そのバナーの画像や、画像のリンク先は外部テキストの変数から引っ張っております。 なんとか形として完成したのですが、 最初に再生したときに、一枚目の画像が読み込まれる前に再生されるので、 一週目がいつも画像が途中で再生されます。 構成としては タイムライン上で bn01~bn04のインスタンスが切り替わっていき、 それぞれのインスタンスが表示されるタイムラインのところに loadVariables ("link.txt",_root); LINK = new LoadVars(); LINK.load("link.txt"); LINK.onData = function() { loadMovie(vbn01, _root.bn01); }; と記述しており それぞれのインスタンスに 直接 on (release) { this.getURL(_root.vlink01); } と記載しております。 http://www.style-walker.com/ 上記サイトのメインバナーのように作りたいのですが、 どなたかご教授いただけないでしょうか。 宜しくお願い致します

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

専門家に質問してみよう