• 締切済み

ムービープレビュー時にエラーメッセージが出ます

FlashCS4で、AS3.0を使用しております。 フレーム195にインスタンス名「kebtn」として、そのボタンを設置して、さらには同じフレーム195には、先のボタンをクリックして作動するムービークリップ「インスタンス名:keanime」を設置し、keanimeのフレーム2からアニメを始めたいのです。フレーム195には下記のASを記述しました。 --------------------------------------------------------- stop(); kebtn.addEventListener(MouseEvent.CLICK, keClick); function keClick(evt:MouseEvent):void { keanime.gotoAndPlay(2); } ------------------------------------------------------------ その後、プレビューしますと、下記のエラーメッセージが表示されます。 ------------------------------------------------------------ TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at keone_fla::MainTimeline/frame195() at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() ------------------------------------------------------------ 「kebtn」をクリック後に「keanime」が開始されるようにしたいのです。どなたか解る方がいましたらアドバイス、ご指導をお願い致します。よろしくお願い致します。

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

みんなの回答

回答No.1

タイムラインに途中から出現した インスタンスはgotoAndStop直後には タイムラインからはアクセスできません 一度ENTER_FRAMEもしくはインスタンスのADDED_TO_STAGEを 待ってからkebtnのイベントリスナー登録をしてください とはいえオーサリングで置いたインスタンスには タイムラインからアクセスするしかないので 選択肢は前者しかないですが あるいはkebtnをスクリプトで生成しaddChildするか 1フレーム目で作っておいて隠しておいて 195フレーム目に来たら現れるようにするか 回避方法はいろいろあります 直前の質問の方も同じ所でつまずいていたようです AS3のひとつの関門なのでしょうね 実はヘルプのMovieClipのところに書いてたりするんですが ADDED_TO_STAGEを待ってくださいとしか書いてなくて アクセスできないから困ってんのに そいつのイベントを待てとはどういうことよ? みたいなカンジだったりするんですよね(笑)

gunhiro
質問者

お礼

H240S18B73さん、有難うございました。 早速ですが…。 H240S18B73さんの言われますように「1フレーム目で作っておいて隠しておいて195フレーム目に来たら現れるようにするか」って言うアドバイスから、そのようにやってみましたら、keanimeアニメが動きました。(他のやり方は自分には解らないので、このやり方が一番確実でした)本当に有難うございました。 このようなやり方があるんですね…。 今後もよろしくお願い致します。どうも有難うございました。

関連するQ&A

  • ボタンをクリックして画面遷移させる方法について

    flash初心者です。 cs4でAS3.0を使っています。 ボタンをクリックするとgotoAndPlayでラベルの指定してあるフレームに飛ぶように設定したいのですが、クリックしても全く反応してくれません。 ボタンは「next」と「top」の2つを画像(ボタンシンボル)で作成しています。 アニメーション後にこの2つのボタンが出て、それぞれをクリックすると別のアニメーションに飛ぶという流れを考えています。 記述したAS3.0は下記です。 --------------------------- stop(); var topBtn01:SimpleButton = new SimpleButton(); var nextBtn01:SimpleButton = new SimpleButton(); topBtn01.addEventListener(MouseEvent.CLICK,top01Click); nextBtn01.addEventListener(MouseEvent.CLICK,next01Click); function top01Click(event:MouseEvent):void{ gotoAndPlay("top01"); } function next01Click(event:MouseEvent):void{ gotoAndPlay("next01"); } ----------------------------------- それぞれのボタンにインスタンス名を「topBtn01」「nextBtn01」とつけています。 ちなみに、エラーは何も出ていません。 ただ、変数を定義しているはじめの2~3行目を抜くと下記のエラーが出ていました。 --------------------------- TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at top_main_fla::MainTimeline/frame251() --------------------------- どうしたら良いか、どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • wonderflで作ったクラスを、flaで呼び出す

    3Dオブジェクトが回るクラス http://wonderfl.net/c/cOMF を、同階層に置いたflaファイルで走らせて、swfファイルを作りたいのですが、 何か根本的に間違っているようで、どうしてもうまくいきません。 以下の手順だと思うのですが、、 1) 外部クラスをimportする 2) そのクラスを使って変数を作る?(型は?) 3) 作った変数をaddChildする? flaの1フレーム目: A) MovieClipで import PV3D_01; import flash.display.MovieClip; var showUp:MovieClip = new PV3D_01(); addChild(showUp); 上記を走らせると、以下のエラーが出ます。 1067: Implicit coercion of a value of type PV3D_01 to an unrelated type flash.display:MovieClip. B)Spriteを使ってみると import PV3D_01; import flash.display.Sprite; var showUp:Sprite = new PV3D_01(); addChild(showUp); こんなエラーが出ます。 INFO: Papervision3D 2.0.0 (March 12th, 2009) TypeError: Error #1009: Cannot access a property or method of a null object reference. at PV3D_01() at PV3D_01_kudou_fla::MainTimeline/frame1() おわかりの方、どうか!よろしくお願いします。

    • ベストアンサー
    • Flash
  • 複数ボタンで指定のフレームに移動

    CS4、ASは3.0を使用しています。 ASについてはまったくの初心者です。 お店のFLASHを作成しています。構成は ちょっとしたオープニングムービー ↓ ボタンが4つ出てくる ↓ その各ボタンを押すと指定したフレームに飛ばす というものです。飛ばし先でもそこから再生するためplayになります。 各ボタンにはインスタンス名を付けています。 本のサンプルやネットで調べても、まったく同じ状態のスクリプトがわからなかった為、似たようなヤツをアレンジしてかなり色々と試したのですが、全て上手くいきません。 一番近かったのが下記のようになります。 ボタンのインスタンスはmenuです。 this.menu.addEventListener(MouseEvent.CLICK,goNext); function goNext(e:MouseEvent):void { this.nextFrame(); } これをアレンジして(69のフレームに飛ばす) this.menu.addEventListener(MouseEvent.CLICK,goNext); function goNext(e:MouseEvent):void { this.gotoAndPlay(69)(); } としたのですが、エラーが出てダメでした。 その他諸々、色々なスクリプトを試しましたが、 殆どが 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at _fla::MainTimeline/frame1()」 とエラーがでます。 スクリプトがダメなのか、それともスクリプトを配置する場所がダメなのすらも分かりません。 1.指定のフレームに移動するスクリプトを教えて下さい。 2.スクリプトを配置する場所は1~4のウチでどうれでしょうか? (どの場所に配置してもエラーがでます。又、タイムライン上にすでに配置されているスクリプトは○秒ストップというスクリプトです) 丸一日これに費やしたのですが、まったく出来ず困ってます。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 出力するとエラーメッセージが出ます

    FLASHCS4でAS3.0を使ってます。 インスタンス名「_1mc」と言うオブジェクトを作成し、そのオブジェクトが浮遊するアニメーションを作成して、そのオブジェクトにマウスカーソルが触れるとマウスオーバーで「_1mc」の「61」へ移動し、マウスアウトで「1」に移動するように作りました。 そしてプレビューすると動作は特に問題なく作動しますが、出力には下記のようなメッセージが表示されます。このままでも問題ないのでしょうか?または別の記述方法を行う事で、このメッセージは回避出来るのでしょうか?その場合の記述方法を教えてください。 --------------------------------------------------------------- TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at takaragawa_fla::MainTimeline/xEnterFrame() --------------------------------------------------------------- 「_1mc」を設置してあるフレームには下記のスクリプトを記述しました var step1X:int=Math.floor(Math.random()*1)+5; var step1Y:int=Math.floor(Math.random()*1)+5; if (Math.random()<0.5) { step1X*=-1; } if (Math.random()<0.5) { step1Y*=-1; } _1mc.addEventListener(Event.ENTER_FRAME, x1EnterFrame); function x1EnterFrame(evt) { _1mc.x+=step1X; _1mc.y+=step1Y; if (_1mc.x>=800||_1mc.x<=0) { step1X*=-1; } if (_1mc.y>=550||_1mc.y<=0) { step1Y*=-1; } } //ロールオーバーの設定 _1mc.addEventListener(MouseEvent.ROLL_OVER,xOver); //ロールアウトの設定 _1mc.addEventListener(MouseEvent.ROLL_OUT,xOut); //ロールオーバーしたとき function xOver(evt:MouseEvent):void { _1mc.gotoAndPlay(61); } //ロールアウトしたとき function xOut(evt:MouseEvent):void { _1mc.gotoAndPlay(1); } -------------------------------------------------------------- 以上ですので、アドバイスをお願い致します。よろしくお願い致します。

  • ボタンとASが1フレーム目にないとエラーになるのは仕様ですか?

    CS4、AS3.0で作成しております。 クリックすると指定したシーンへ移動するスクリプトを作成しました。 ボタンが複数あるので、各ボタンにインスタンス名を入れてます。 //各ボタンが押されるのを監視 this.menu_btn.addEventListener(MouseEvent.CLICK,menu); this.shop_btn.addEventListener(MouseEvent.CLICK,shop); this.access_btn.addEventListener(MouseEvent.CLICK,access); //クリックされたとき、指定フレームまで移動 function menu(e:MouseEvent):void { this.gotoAndPlay(69); } function shop(e:MouseEvent):void { this.gotoAndPlay(75); } function access(e:MouseEvent):void { this.gotoAndPlay(78); } で、ボタンとASを1フレーム目に入れれば作動するのですが、両方とも2フレーム以降に持ってくるとエラーが出て作動しません。 「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」と出ます。 ボタンの数を1つにしても同様でした。 プログレスバーを作るのに、2フレーム目に持ってきたいのですが、これはCS4の仕様かバグなのでしょうか? 回避する方法はありますでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ムービーのコントロールについて教えてください。

    ムービーのコントロールについて教えてください。 私は、フラッシュCS5を使用し、アクションスクリプト3.0で記述しています。 ムービーコントロールについて教えていただきたくてこちらに書き込みをさせていただきました。具体的には、ステージにムービー(インスタンス名:FLV_Play01)を読込み、そのムービーの上に再生ボタン(インスタンス名:Btn_1)を設置しました。添付画像をご覧ください。 ステージのタイムラインの1フレームに下記のようにスクリプトを記述しました。 import flash.events.MouseEvent; Btn_1.addEventListener(MouseEvent.CLICK, fl_ClickToPlayVideo); function fl_ClickToPlayVideo(event:MouseEvent):void { FLV_Play01.play(); } function removeMC(ev:MouseEvent):void{ removeChild(Btn_1); } Btn_1.addEventListener(MouseEvent.CLICK,removeMC); この記述ですと、ムービーの再生ボタン(インスタンス名:Btn_1)をクリックするとムービー(インスタンス名:FLV_Play01)がスタートして再生されます。再生と同時に再生ボタンが消去され、ムービーだけの表示となります。ただ、このスクリプトですと、ムービーが終了した後には再生ボタンが再表示されない為に繰り返し見る事が出来ないのです。 そこでですが、ムービーの再生終了後に再び再生ボタンを表示させるようにしたいのです(ユーチューブのようなイメージです)。そのためのスクリプトを記述したいのです。どなたか解る方がいましたらスクリプトの記述内容を教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • AdobeFlashCS4で広告を作成しています。

    AdobeFlashCS4で初めて広告flashを自作しています。 正しいクリックタグの設置方法がわかりません。 Adobeのヘルプページを見てもさっぱりわかりませんでした。 現在は最上層のレイヤーにActiopnに下のように列記しています。 ---- import flash.events.MouseEvent; import flash.net.URLRequest; var tag; tag.addEventListener( MouseEvent.CLICK, function(event: MouseEvent) : void { flash.net.navigateToURL(new URLRequest( root.loaderInfo.parameters.clickTAG), "_blank"); } ); ------------------- そのままGoogleAdwordsに広告をアップロードしようとしたところ、下記のようなエラーが表示されました。 -------- TypeError: Error #1010: 条件は未定義であり、プロパティがありません。 at _fla::MainTimeline/frame1() -------- 現在はflashイメージを作成し終わったところです。 どなたかクリックタグの設置の仕方を分かりやすく教えていただけないでしょうか。 初心者なので、分かりやすく教えていただけると大変助かります。 どうぞ、よろしくお願いします。

  • 外部から読み込んだ画像にリンクをつけたい

    ActionScript3.0についての質問です。 ボタンをクリックした時に外部から画像を読み込んで、 読み込んだ画像にそれぞれに外部リンクをつけたいのですが、 リンクのつけ方が分かりません。 ボタンをクリックして外部から画像を読み込むところまではできたのですが、 その画像にリンクをつけるところで困っています。 超初心者ですので、できるだけ現状のプログラムを生かして変更したいのですが… どなたか分かる方がいらっしゃいましたら、教えていただきたいです。 よろしくお願いいたします。 【Main.as】 package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.display.SimpleButton; public class Main extends Sprite { private var contentMC:MovieClip; private var contentLoader:Loader; //コンストラクタ public function Main(){ //外部ファイルを配置するムービークリップの生成 contentMC = new MovieClip(); contentMC.x=0; contentMC.y=0; addChild(contentMC); //Loaderオブジェクトを生成 contentLoader = new Loader(); contentMC.addChild(contentLoader); //ボタン処理 my1_btn.addEventListener(MouseEvent.CLICK,my1Handler); my2_btn.addEventListener(MouseEvent.CLICK,my2Handler); my3_btn.addEventListener(MouseEvent.CLICK,my3Handler); } //各ボタンをクリックしたときに外部ファイルを読み込む private function my1Handler(evt:MouseEvent):void{ var url="img/flashimg01.jpg"; loadContent(url); } private function my2Handler(evt:MouseEvent):void{ var url="img/flashimg02.jpg"; loadContent(url); } private function my3Handler(evt:MouseEvent):void{ var url="img/flashimg03.jpg"; loadContent(url); } //外部ファイル読込 private function loadContent(url){ var req:URLRequest = new URLRequest(url); contentLoader.load(req); } } }

    • ベストアンサー
    • Flash
  • ActionScript3.0フレーム移動について

    お世話になります。 Flash ActionScript3.0で、ボタンをクリックしたら、 階層違いのシーンに移動するという 単純なところでつまずいています。 一番上の階層には、 1フレーム目 フレームラベル "a" 2フレーム目 フレームラベル "b" として、それぞれ this.stop();を書いてあります。 "a""b"には、それぞれムービークリップが配置してあって、 今やりたいことは、"a"に配置してあるムービークリップの 2つ下(中?)の階層にあるボタンをクリックしたら、一番上の階層の"b"に移動して、 "b"に配置してあるムービークリップを表示するようにしたいのです。 "a"のムービークリップのボタンのあるフレームには、 this.stop(); button01.addEventListener(MouseEvent.CLICK,jumpB); function jumpB(event:MouseEvent):void { MovieClip(parent.parent).gotoAndStop("b"); } と書いてみましたが、 [TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。] と怒られます。 試しに MovieClip(stage).gotoAndStop("b"); とか、"b"に配置してあるムービークリップにインスタンス名"b_mc"を与えて MovieClip(parent.parent).b_mc.play(); などと苦し紛れにやってみましたが、すべて同じように怒られます。 どのようにすれば、下の階層から一番上の階層の別フレームに 移動することができますでしょうか? よろしくお願い致します。

  • MouseEventについて教えてください

    Flash初心者です。 MouseEventについて教えてください。 作業の環境はCS5 AS3です。 下記のソースでbot1を押しても出力結果で[object MovieClip]と 表示されるだけでターゲットのインスタンス名を割り出せませんでした。 MouseEvent.ROLL_OVER等でしたら出来たのですが、 どうしてもCLICKでは上手くいきませんでした。 簡単なことだとは思うのですが、僕には分からなく困り果てています。 どうか教えてください、宜しくお願いいたしす。 ============================================ 使用ソース ============================================ bot1.addEventListener(MouseEvent.CLICK, onClick); function onClick(e:MouseEvent):void{ trace(e.target); } 以上です。 宜しくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう