• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FLASHのボタンを押されたままの状態で止めておきたいです。)

FLASHのボタンを押されたままの状態で止める方法

このQ&Aのポイント
  • FLASHのボタンを押されたままの状態で止める方法について教えてください。
  • FLASHのボタンをアップの状態で表示したいが、うまくいかない場合の解決方法を教えてください。
  • FLASHでボタンを作成し、ボタンをアップの状態で表示する方法を知りたいです。

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

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

> ボタンもムービークリップの一種なので 違いますよ。全く違います。 UIコンポーネント の Buttonコンポーネント でしたら, ムービークリップを拡張して作成されたものですから, ムービークリップの一種であると言えます。 しかし普通のボタンはムービークリップとは全く別物です。 だいたい,ボタンはムービークリップが登場する前の初代Flashからすでにありました。 ムービークリップはFlash3からの登場です。 ムービークリップにはこの時点ですでにインスタンス名を付けることができましたが, ボタンのインスタンス名が付けられるようになったのは Flash MX 以降の話です。 どちらかというとボタンはグラフィックシンボルに近い存在だと思います(近いだけで違いますが)。 またボタンはムービークリップと違って階層も持ちません。 またクラスも違います。 また内部にスクリプトを持つこともできません。 > mcBtn.gotoAndStop(3); // ダウンにならない 最初からムービークリップで作成すれば良いだけだと思います。 「ムービークリップのボタン化」 http://homepage3.nifty.com/ginga-b/MX/btnmc.html これは attachMovie するしないという以前の問題ですけどね。 その他検証結果 mcBtn.gotoAndStop(3); // ダウンにならない trace(typeof (mcBtn)); // →出力結果「object」 変なのは, 「gotoAndStop(3) ができないこと」 ではなく, 「attachMovie ができてしまうこと」 です。 attachMovie は MovieClip クラスのメソッドであって Buttonクラスにはありません。 したがって本来は attachMovie できるはずがない。できてはならないもののはずです。 できてはならないものができてしまう方が問題だとは思いますが, できたからと言って特に不具合を起こすようなことにはならないと思うので, そのまま放置されたもの,つまりバグの一種だと思います。 そういう変な現象(バグとは呼べないバグ)はけっこうありますよ。 先日発見したのですが, MovieClip.loadMovie メソッド の方ではなくて, loadMovie 関数の方で ロードするターゲットにボタンやテキストフィールドを指定した場合, 外部の画像やムービーがロードできてしまうとかとか… (↑この場合 typeof は movieclip に変身します。)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ActionScript2.0のイベントについて

    親ムービークリップに配置した子ムービークリップのイベントが実行されなくて困っています。 親ムービークリップ自体には下記のイベントを設定しています。親ムービークリップはattachMovieで動的に配置しています。 onRollOver・・・onEnterFrameを設定 onRollOut・・・onEnterFrameを削除 子ムービークリップを配置して子ムービークリックにイベントを設定しました。onEnterFrameをは実行されますが、onReleaseが実行されず困っています。 function Parent() { this.onRollOver = function() { this.onEnterFrame = function(){・・・} } this.onRollOut = function(){ delete this.onEnterFrame; } this["child_mc"].onRelease = function() { trace('a') // 実行されない } this["child_mc"].onEnterFrame = function() { trace('b') // 実行される } } ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ _root.attachMovie("Parent", "parent_mc", _root.getNextHighestDepth(), new Parent()); 子ムービークリップはオーサリングで静的にParentに配置し、プロパティでchild_mcと設定しています。 onReleaseは実行できず、そこで止まっています。 なんでも良いので教えてください。

    • ベストアンサー
    • Flash
  • Flashの中でCGIのBBSを表示

    Flash 8を使用しています。 Flashでサイト製作をしており、Flashの中でCGIのBBSを表示させたいのですが、 上手く行きません。 私がやろうとしていることは以下のとおりです。 ボタンクリックで、以下のようにしてExplorer風のウィンドウを表示する。 on (release){ var emptyObject = _root.createEmptyMovieClip("emptyClip",_root.getNextHighestDepth()); var attachObject = emptyObject.attachMovie('bbs_window',"movieObject",0); attachObject._x =100; attachObject._y =100; attachObject.onEnterFrame = function(){ } } 表示されたMovieClipをドラッグできるようにする。 on (press) { _parent.swapDepths(_root.getNextHighestDepth()); _parent.startDrag(); } on (release) { _parent.stopDrag(); } actionscriptは初心者のため無駄なコードがあるかとは思いますが、 ここまでは、やりたいことは上手く行っています。 こうして表示されたMovieClip(Explorer風ウィンドウ)の中に、 CGIで作られたBBS(http://www.2apes.com/products/index.html)を表示させたいのですが、 上手く行きませんでした。 私がやろうとしたこと: 上記MovieClipの中にMovieClipを作成し、 (1) onClipEvent (load){ this.loadVariables("~~.cgi"); } とする。 ⇒表示されず。 (2) onClipEvent (load){ this.loadVariables("bbs.html"); } とし、bbs.htmlに<iframe>や<frameset>でcgiを埋め込む。 ⇒bbs.htmlは表示されるが、フレーム非対応ブラウザ用のメッセージが表示される。 (3) bbs.htmlに、cgiへのリンクを貼る。 ⇒MovieClip内ではなく、swfを表示しているウィンドウ全体をtargetにして表示されてしまう。 以上です。 BBS自体は正常に動作しています。 (2)の方法で行ければ理想的なのですが、不可能でしょうか。 他にどのような方法が考えられるでしょうか。 解決方法がお分かりになる方、ご教授をよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • actionscript

    FLASHを作成してますが、actionscriptでつまずいています。 シーンが1~5まであるFLASHで、 添付の画像のようなものです。 シーン2が 左のメニュー一覧はムービークリップになっていて、 その中にボタンがある状態(入れ子?)です。 ボタンをクリックするとシーン1の先頭に飛ぶようにしたくて on (release) { this._parent._parent.gotoAndStop("シーン 1","1"); } と書きましたがうまくいきません。 詳しい方いましたら教えてください

    • ベストアンサー
    • 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();

  • actionscript、戻るボタン、進むボタンについて

    進むボタンを押した時、次のページに進み、戻るボタンを押した時、前のページに戻るというFlashを作成しています。 戻るボタンに下のコードを記入した時、 最初のページに戻った後、何回もボタンが押せてしまいますが、 「戻るボタン」で押した回数分だけ「進むボタン」を押さないと、 次のページに進むことがませんでした。 最初のページまで戻ったら、そこでストップさせるにはどのようなコードを書いたら良いのでしょう。。 教えていただけたら幸いです。 on (release) { var test_img = ""; a = a-1; test_img = "test"+a; _root.test_mc.gotoAndStop(test_img); }

  • setTimeoutでの制御に関しまして

    初めて質問をさせて頂きます。よろしくお願い致します。 「mc_Image1」、「mc_Image2」、「mc_Image3」という 各ムービークリップをストップボタンを押した際に時間差で停止させたいのですが 「mc_Image2」、「mc_Image3」がstopがかからない状態が稀に生じたりします。 (ムービークリップは全て、1フレーム目にstop();、10フレーム目にgotoAndPlay(2);と設定) 少し端折っておりますが、スクリプトを記載いたします。 ---------------------------- //何回ルーレットしたかカウントする var count:Number = 0; //スタート/ストップボタンが押された押されていないかのフラグ var flg_StartStop:Boolean = false; // mc_Image停止待機速度変数(ミリ秒) var hensu1 = 2000; var hensu2 = 3000; //スタート/ストップボタンを押した時に呼び出される関数 btn_StartStop.onPress = function() { if(flg_StartStop) { //選ばれたフレームに飛ぶ mc_Image1.gotoAndStop(parseInt(one)+1); // setInterval で hensu(ミリ秒)後に_root.gotoAndStop(); を実行 stopID = setInterval(function () { _root.mc_Image2.gotoAndStop(parseInt(two)+1); clearInterval(stopID); }, hensu); stop2ID = setInterval(function () { _root.mc_Image3.gotoAndStop(parseInt(three)+1); clearInterval(stop2ID); }, hensu2); //押されたかどうかの変数を「偽」に flg_StartStop = false; //カウンタを増やす count++; } else { //ムービークリップを走らせる mc_Image1.play(); mc_Image2.play(); mc_Image3.play(); //押されたかどうかの変数を「真」に flg_StartStop = true; } } ---------------------------- 。 きちんと「gotoAndStop();」させるにはどのように対処すれば よろしいでしょうか。 不足がございましたら申し訳ありません。 何卒よろしくお願い致します。

  • Flashで、ナビゲーションがマウスカーソルに追従し、カーソルに近づくと止まるボタン

    FlashのActionScriptについての質問です。 参考書を見ながらやっていて、 ナビゲーションがマウスカーソルに追従し、カーソルに近づくと止まるボタンを作りたいのですが、 マウスに追従してきません。 _rootタイムラインのムービークリップctr_mcsetに、 onClipEvent (enterFrame) { if (_root.woksctr == true) { this._x += (_parent._xmouse-this._x)/5; this._y += (_parent._ymouse-this._y)/5; } } を記述しました。 ctr_mcsetのタイムラインに、触れると追従が止まるボタンの領域として、 cl_bn02を配置して、クリッカブル表示されないように on (release) { } onClipEvent (load) { this.useHandCursor = false; } を記述しました。 その、cl_bn02のタイムラインに、_up,_over,_downラベルをつくり、 _upには、 stop(); this.hitArea = hit; this.hit._visible = false; _root.worksctr = true; _over,_downには、 _root.worksctr = false; と記述しました。 参考書の通りだと、これでマウスカーソルにナビゲーションが近づくと静止し、 離れると追従するらしいのですが、止まったまま追従してきません。 if (_root.woksctr == true)の、==を、=だけにすると、追従はしてきますが、 ムービークリップの中心点にマウスカーソルがいつもいってしまって、 左右のボタンがうまく押せません。 どこか記述がヘンなのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 複数ボタンの生成 - actionscript

    以前複数のムービークリップを作る方法を 教えていただいたのですが、そのムービークリップ をボタンにしたいのですがうまく行きません。 for (var i = 1; i<5; i++) {   _root.createEmptyMovieClip("mc"+i, i);   var load_mc = _root["mc"+i];   _root.test = load_mc;   var jpg = i+".jpg";   load_mc.loadMovie(jpg);   i = i-1;   load_mc._x = i*200;   i = i+1; } onEnterFrame = function () {   for(var t=1;t<5;t++){ var load_mct = _root["mc"+t]; load_mct.onPress = function(){ trace(t);   }  if(_xmouse>540 && _root.mc1._x<=-1) {   for (var j = 1; j<5; j++) { var load_mcj = _root["mc"+j]; load_mcj._x += 10;   }  }  if(_xmouse<10 && _root.mc1._x>=-1*((test*200)-560)) {   for (var j = 1; j<5; j++) { var load_mcj = _root["mc"+j]; load_mcj._x -= 10;   }  } } 多分EnterFrameの中に記述するのがおかしい と思うのですが、いったいどこに記述しないと いけないのがわからないので、どなたか ご教授ください。

    • ベストアンサー
    • Flash
  • メインのタイムラインに戻るボタン

    同じような質問を幾つかあたってみたのですが上手くいかなかったので質問させていただきます。 FLASH8でFLASHを作成しています。 メインになるタイムライン上にムービークリップでウィンドウを作りました。 更にその中(ドラッグした時に一緒に動かす為、入れ子にしている)に、ウィンドウを閉じる為のボタンを作りました。 ウィンドウを閉じた状態にする為には、メインのタイムラインにある "main"というフレーム名の場所に戻らなければならないのですが、ボタンが反応せずウィンドウを閉じる事が出来ません。 現在ボタンには on (release) { _root.gotoAndStop("main"); } このアクションスクリプトを記述しています。

    • ベストアンサー
    • Flash
  • flashのscriptを特定のフレームに!

    flashのactionscript2.0で記述したスクリプト を特定のフレームにだけ適用したいのですが どのようにすればよいのでしょうか。 いま、シーン1のフレーム1に ライブラリからMC(ブロック)を呼び出して並べるスクリプト記述したのですが、シーン1で mcとmcが衝突したら、ほかのフレームに移動するようにしたのですが 移動先の画面にもライブラリから呼び出したMC(ブロック)が並んで表示されます。 ちなみに、シーン2をつくって移動させても同じことが起こります。 ネットのサンプルコードを利用していますが スクリプトは以下の通りです。 よろしくお願いいたします。 ofs_x = 100; ofs_y = 50; // 当たり用テーブル(1ならブロック,0なら何もなし) HitTable = [ [ 1,1,1,1,1,1,1,1,1,1 ], [ 1,0,0,0,0,0,0,0,0,1 ], [ 1,0,1,0,1,1,1,1,0,1 ], [ 1,0,1,0,0,1,0,0,0,1 ], [ 1,0,1,0,1,1,0,1,1,1 ], [ 1,0,1,0,1,0,0,0,0,1 ], [ 1,0,1,0,1,0,1,0,1,1 ], [ 1,0,1,0,1,0,1,1,1,1 ], [ 0,0,0,0,1,0,0,0,0,1 ], [ 1,1,1,1,1,1,1,1,0,1 ] ]; // ブロックを配置 var i = 0; var j = 0; var depth = 0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(HitTable[j][i] == 1){ _root.attachMovie("block", "block" + depth,depth); _root["block" + depth]._x = i * 20 + ofs_x; _root["block" + depth]._y = j * 20 + ofs_y; depth ++; } } }