• 締切済み

ムービークリップのボタン化

menu01_mcというムービークリップをボタンにしたいのですが、 ボタン自体に on (release) { _root.photo_mc.loadMovie("1.jpg"); } と書くと正常に動くのですが、 タイムライン上に menu01_mc.onRelease = function(){ _root.photo_mc.loadMovie("1.jpg"); } と書くと動きません。 どのようにすればいいのでしょうか? わかる方教えてください。よろしくお願いします。

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

みんなの回答

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

時間(タイムラインのフレーム)がずれているのではないでしょうか? 下に書かれていらっしゃるスクリプトを書いているフレームには, _root.photo_mc は存在していますか? また, > と書くと正常に動くのですが、 > タイムライン上に と書かれましても,どのタイムラインに書いたスクリプトなのかわかりません。 _root.photo_mc が存在する _root のタイムラインの同じフレームに, 下に書かれていらっしゃるスクリプトを書かれるとちゃんと動作すると思いますが, _root.photo_mc 内のタイムラインに, 下に書かれていらっしゃるスクリプトを書かれても当然無事に動作しません。 さらにまた, Flash のバージョンや,書き出したい ActionScript のバージョンもわかりません。 とにかく Flash は, 「空間」,「時間」,「階層」,「ご使用のFlashのバージョン」,「パブリッシュしたいFlashのバージョン」によって,構造やスクリプトが大きく左右されますから,書かれていらっしゃる条件からは何とも言えないのが現状です。 何かを言うとすれば,「ここがダメかも」,「あそこもダメかも」と,無数にダメである可能性が出てくるだけです。

関連するQ&A

  • loadMovieしたムービークリップのボタン化

    ムービークリップにloadMovieで1.jpgをロードし、それをボタンにしたいのですが、下のスクリプトではうまく動作しません。 menu01_mc.loadMovie("1.jpg"); menu01_mc._xscale=10; menu01_mc._yscale=10; menu01_mc.onRelease = function(){ gotoAndStop(5); } 最初のloadMovieの部分をなくし、 menu01_mc.onRelease = function(){ gotoAndStop(5); } とするとちゃんと動作します。 loadMovieしたムービークリップはボタンにできないのでしょうか? FlashCS3、actionscript2.0で作成しています。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタン

    以下のようなスクリプトで、写真のメニューを作っています。 画像の読み込みまでは、うまくできたのですが、ボタンにする ところでつまづいています。 以下のスクリプトでは、どのボタンをクリックしても、変数mに10が代入されているため、10.jpgがphoto_mcに表示されてしまいます。どのようにすれば、 menu1_mcをクリックすれば、1.jpg、 menu2_mcをクリックすれば、2.jpg、 menu3_mcをクリックすれば、3.jpg・・・ のようになるのでしょうか?説明が下手で申し訳ありません m(_ _)m i = 10; /*trace(i);*/ for (y=0; y<10; y++) { m = y+1; obj = this.attachMovie("menu", "menu"+m+"_mc", y); obj._x = 30; obj._y = 70*y+10; /*画像読み込み*/ name = "menu"+m+"_mc"; this[name].photo_mc.loadMovie("photo/"+m+".jpg this[name].photo_mc._xscale = 15;//% this[name].photo_mc._yscale = 15;//% /*ボタン化*/ this[name].onRelease = function() { _root.photo_mc.loadMovie("photo/"+m+".jpg"); }; } 環境はFlashCS3、ActionScript2.0です。 よろしくお願いします。

  • ムービークリップ

    ムービークリップをクリックすることによって、 他のムービークリップの位置を変更できますか? もしくは他のムービークリップの複製はできますか? 今はクリックしたムービークリップ(自分自身)の 複製は出来ています。 on (release) { this.duplicateMovieClip("Photo_big", 0); _root.Photo_big._xscale = 80; _root.Photo_big._yscale = 80; _root.Photo_big._x = 350; _root.Photo_big._y = 200; } ちなみに移動したいムービークリップのインスタンス名は text1です。

    • ベストアンサー
    • Flash
  • 条件式の中に入れるとムービークリップが動作しない。

    条件式の中に入れるとムービークリップが動作しない。 またまた、悩みにはまってしまいました。 初期状態で、ボタンのムービークリップを全て、ラベルreadyの静止画像に設定し、 クリックされたときに、そのボタンのラベルhitに移動して、 そこに設定されたムービークリップの動作をさせようとしています。 以下のようなアクションスプリクトを書きましたが、 hitに移動するものの、hitに設定したムービークリップの、 1フレーム目の静止画像しか表示されません。 試しに6行目の_root[buttonName].gotoAndStop("ready"); のreadyをhitに変えると、hitラベルのムービークリップが動作します。 原因は何なのでしょうか??? ////////////////////////////////////////////////////////// var onMapButton_num = 0; onEnterFrame = function () { var buttonName = "onMapButton" + onMapButton_num + "_mc"; for ( var i:Number = 1; i < 6; i++) { // 初期設定 buttonName = "onMapButton" + i + "_mc"; _root[buttonName].gotoAndStop("ready"); //ボタンをすべて ready に } for ( var i:Number = 1; i < 6; i++) { // アクション if ( onMapButton_num== i ) { // ボタンが押された場合 buttonName = "onMapButton" + i + "_mc"; _root[buttonName].gotoAndStop("hit");     // ヒットしたボタンを hit に } } }; // ボタン(1~5)のアクションと 番号の取得 ////////////////////////////////// onMapButton1_mc.onRelease = function() { onMapButton_num = 1; }; onMapButton2_mc.onRelease = function() { onMapButton_num = 2; }; onMapButton3_mc.onRelease = function() { onMapButton_num = 3; }; onMapButton4_mc.onRelease = function() { onMapButton_num = 4; }; onMapButton5_mc.onRelease = function() { onMapButton_num = 5; }; stop();

  • ムービークリップをボタンがわりに

    flash勉強中のものです。メニューを外部ファイルで作って読み込ませる感じにしています。それで、メニューの1フレーム目に各コンテンツを読み込むためのスクリプトを書き、ボタンがわりに使っているムービークリップにコンテンツを呼び出すスクリプトを書こうとしているのですが、 ボタンオブジェクトに書くときはon(release) { this.contact();   } でメニューの1フレーム目で定義したcontactメソッドを実行することができるのですが、作り込んだボタンにしたかったので後にムービークリップで作り直しました。 ここで未熟者の私はつまずいてしまったのですが、ムービークリップにon(release) { this.contact(); } と同じ動作を与えるにはどんなスクリプトを書けばよろしいのでしょうか? どうかご教授お願いいたします。

    • ベストアンサー
    • Flash
  • ActionScript - 複数の空ムービークリップ

    複数の空ムービークリップを作成してその中に 画像を埋め込みたいのですがうまくいきません。 for(var i=1;i<10;i++){  //空ムービークリップ作成 _root.createEmptyMovieClip("mc"+i,0); var load_mc = "_root.mc" + i; var jpg = i + ".jpg";  //画像の読み込み load_mc.loadMovie(jpg); } の様に行っているのですが エラーは起こりませんがうまくいきません。 ↑プラス横一列に並べる方法もよかったら お教え願います。よろしくお願いします。

  • ムービークリップ内のボタン

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

  • ムービークリップの中のボタンからURLを表示させたい

    flash8を使用しています。今、作成しているものは クリックして開けた箱の中にボタンが隠れていて そのボタンをさらにクリックすると あるURLが表示される・・・というflashを作成したいのですが、 この箱の中のボタンに対する下記の表記では表示されません。 on (release) { getURL("http://www.***"); } ムービークリップ(開く箱)の中の構造は up・over・release・outでフレームを区切っており、 箱のフタが閉じた状態から開くように設定しています。 ここまでの動作は問題なく出来ているのですが、 中に入れたボタンをクリックしても 表示したいURLが表示されないんです。 ちなみにこの箱のムービークリップに対する メインタイムラインのスクリプトは・・・ var box:MovieClip; box.onRollOver = openBox; box.onRollOut = closeBox; box.onRelease = breakBox; box.onReleaseOutside = closeBox; function openBox():Void { this.gotoAndPlay("over"); } function closeBox():Void { this.gotoAndPlay("out"); } function breakBox():Void { this.gotoAndPlay("release"); } というように指示しています。 試しに、この箱のムービークリップではなく、 フレームで区切ってない単純なムービークリップの中に ボタンを置いたらURLが表示されるので このフレーム区切りが反応させない原因なのでしょうか? 何か解決方法はないのでしょうか? ご教示願います。

    • ベストアンサー
    • Flash
  • ムービークリップを動かす

    FLASH 5 を使っています。 ボタンを使ってムービークリップを動かそうとしています。 下記のように書いて、ボタンを押した時と 『 ↓ 』 キーを押した時に 『 ●●_MC 』 が -10 ずつ動いて -550 まできたら動かないようにしています。 on (press, keyPress "<Down>") { if (_root.●●_MC._y>=-550) { _root.●●_MC._y-=10; } } 但しこれだとボタンを押す度に -10 ずつ動きますが、何度も押さなければなりません。 『 ↓ 』 キーを押し続けた場合は連続で動きます。 ボタンを押し続けた場合にも、連続で -10 ずつ動かすにはどのように書いたら良いのでしょうか? 間抜けな質問をしているかとは思いますが、不慣れなものですので何卒宜しくお願い致します。

    • ベストアンサー
    • Flash
  • AS3:ルートの変数とムービークリップ内の変数について

    AS3:ルートの変数とムービークリップ内の変数について ルートのタイムラインで設定した変数var RootVarがあるとして、これをあるムービークリップMCからMovieClip(root).RootVarで読み取って、MC内で何か処理をしたときMovieClip(root).RootVar++;とやってもルートのRootVarの値は変わりません。 例えば、 ■ルートのタイムライン1フレームに記述 var RootVar:uint; if(RootVar>=3){ trace("できた!!"); } ■ステージにあるムービークリップMCのタイムライン1フレームに記述 MovieClip(root).RootVar=0; var AddTimer:Timer = new Timer(1000,3); AddTimer.addEventListener(TimerEvent.TIMER,AddNum); AddTimer.start(); function AddNum(eventObject:TimerEvent):void { MovieClip(root).RootVar++; } ルートからムービークリップ、ムービークリップからルートへ変数に値を渡したり受け取ったりはできなのでしょうか? 変数の扱い方が問題なのでしょうか?よろしくお願いします。 環境:AS3、Flash CS4

    • ベストアンサー
    • Flash

専門家に質問してみよう