- ベストアンサー
FlashCS4でAS3.0を使用してリンケージを使った表示オブジェクトのコントロールについて教えてください
- FlashCS4でAS3.0を使用してリンケージを使った表示オブジェクトのコントロール方法について教えてください。
- 四角いオブジェクトを作成し、モーショントゥィーンを使用してサイズを変化させるムービークリップを作成しましたが、指定したサイズにならずに表示されます。
- さらに、ムービークリップを最小のサイズに戻すためのボタンを設置しましたが、反応がなく表示されたままです。どのように修正すればよいでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>ムービークリップを表示させる為のボタン「p1_bt」をクリックしたら >オブジェクトがアニメーションして最大サイズになり、 >その最大サイズ時(10フレーム)に設置してある「close_bt」をクリックすれば、 >最大のサイズから最小のサイズにアニメーションし、 >その後そのオブジェクトが非表示にさせたいのです。 と 書かれていらっしゃる日本語を そのままスクリプトにすると次のようになります。 ・メインのタイムラインのフレームのスクリプト -------------------------------------- p1_bt.buttonMode = true; var newCharacter:MovieClip=new Photo1(); newCharacter.x = 60; newCharacter.y = 191; //newCharacter内タイムラインの再生を //フレーム1で停止 newCharacter.gotoAndStop(1); p1_bt.addEventListener (MouseEvent.CLICK,p1Click); function p1Click (evt:MouseEvent):void { addChild (newCharacter); //newCharacter内タイムラインの再生を //フレーム1から開始 newCharacter.gotoAndPlay(1); } -------------------------------------- ・クラス名「Photo1」MC内 フレーム10のスクリプト -------------------------------------- //このタイムラインをこのフレーム(フレーム10)で停止 this.stop (); //close_btにクリック時のイベントリスナーを登録 close_bt.addEventListener (MouseEvent.CLICK,closeClick); //関数 closeClick の定義 function closeClick (evt:MouseEvent):void { //このタイムラインを再生 this.play (); } -------------------------------------- ・クラス名「Photo1」MC内 フレーム20(最終フレーム)のスクリプト -------------------------------------- //親階層に対して命令. 子である自分を削除 this.parent.removeChild(this); -------------------------------------- なお, メインのタイムラインのフレームのスクリプトで書いた //newCharacter内タイムラインの再生を //フレーム1で停止 newCharacter.gotoAndStop(1); //newCharacter内タイムラインの再生を //フレーム1から開始 の部分を //newCharacter内タイムラインの再生を停止 newCharacter.stop(); //newCharacter内タイムラインの再生を開始 newCharacter.play(); としても良いですが ムービークリップを表示させる為のボタン「p1_bt」を何度もクリックされた場合, 動きがおかしくなる (私の感性とはずれる) ので gotoAndStop(1) や gotoAndPlay(1) にしています。 また書かれていらっしゃるものに限っては, 「Photo1」MC内のフレーム20(最終フレーム)のスクリプトを 次のようにしても同じ意味になります。 //rootに対して命令. 子である自分を削除 MovieClip(root).removeChild(this);
お礼
BlurFiltanさん: いつも迅速で的確なご回答有難うございます。 また、お忙しい中お時間を割いて頂きまして誠に有難うございました。 早速ですが、ご指導のようなスクリプトを記述しましたら、私の思っていた表示が出来るようになりました。 とても解り易い解説でよく理解できました。本当に有難うございました。助かりました…。