FlashのActionScriptのエラーを解決する方法

このQ&Aのポイント
  • FlashのActionScriptで「on/onClickEventハンドラ内でなくてはいけません」というエラーが発生しています。このエラーを解決する方法についてご教示ください。
  • スクリプトはボタンの中に、on(click) {...} と記載しています。この記述がエラーを引き起こしている原因を教えてください。
  • ActionScriptの基本的な概念や動作原理について、まだ理解が不十分です。ActionScriptの基礎知識を教えていただけますか?
回答を見る
  • ベストアンサー

FlashのActionScriptのエラー

かなり基本的なことだと思うのですが、煮詰まってるので教えてください。 ActionScriptのチェックを掛けると「on/onClickEventハンドラ内でなくてはいけません」とのエラーがでます。 スクリプトはボタンの中に、 on(click) { with(_parent){ priceTotal_txt.text = Number (price1_txt.text) + Number (price2_txt.text) + Number (price3_txt.text); } }; と記載しています。 まだまだ意味が分からない事が多いので教えてください。

  • zzZZZ
  • お礼率28% (64/222)

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

ボタンのイベントハンドラ( on の後ろのカッコ内に記述する文字列。所定の文字列以外は使用不可)に、click というものはありません。 ボタンが押された時に処理をさせたい場合は press、ボタンが押されて離された時に処理をさせたい場合は release (ボタン外でマウスボタンを離された場合も想定する時は release と releaseOutside を併用)を使います。 さしあたって、  on(click) { の部分を  on(press) { か、  on(release) { に直してみてください。エラーは出なくなると思います。

zzZZZ
質問者

補足

回答ありがとうございます。 Pressにしてもreleaseにしても同じ結果でした。 書き忘れたのですが、ヘルプにあるチュートリアルで勉強しています。その中の手順に従って上記のスクリプトを書きました。ヘルプ内のスクリプトをそのままコピーしてもこのエラーになっている状態なんです。 よろしくお願いします。

その他の回答 (2)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

#1です。 改めてご質問文を拝見したところ、onに対応する { } の、閉じの部分(スクリプトの一番最後)に、セミコロン( ; )が付いていますよね。これが原因ではないでしょうか? onの範囲を示す { } の最後には、セミコロンは不要です。これを削除して、試してみてください。

zzZZZ
質問者

お礼

ありがとうございます。 単純な間違いだったのですね。 基礎を固められるよう頑張ります。

  • DPE
  • ベストアンサー率85% (666/776)
回答No.3

普通のボタンではなく、コンポーネントのボタンに関するお話だったんですね。(普通のボタンイベントハンドラには click はありませんが、コンポーネントのボタンでは使用できます。すみませんでした)

関連するQ&A

  • ActionScriptエディタを作りたい!です…

    毎度お世話になっておりますsassakunと申します。 変な回答をすることがありフォローを入れていただきありがとうございます。 Flashカテゴリでの質問は初心者です。 訳あってActionScriptエディタを作成中です。 「Flash Player de ActionScript」(今閃いた仮称)。 大した物ではないです。 テキストエディタでスクリプトを作る事が多々あるのですが,定型句みたいなものをキーボードを叩くのが面倒です。 またifをIFと書いてしまったり書き間違いが多いです。 蛇のアイコンのソフトも知っていますが,あれはFlashより使い勝手が悪い。 それなら自分で作ってしまおうと思ったのです。 TXTという変数名のダイナミックテキストエリアを作成し,あるボタンをクリックすると,そのボタンのスクリプトで  on (release) {   TXT = TXT + "ActionScript(値)"  } みたいなスクリプトで, 変数TXTにどんどんスクリプトを加算していく方法で大体はできました。 大体と言うのは自分がよく使うスクリプトの範囲内という意味です。 でも上のスクリプトだとどうしても文字列の後に,"ActionScript(値)" が付いてしまいます。 そうではなくて,  onClipEvent (load) {  | (←マウスカーソルのつもり)  } のカーソル部分に _root.stop(); などというスクリプトが入れたい場合が多々あります。 タグ挿入型HTMLエディタならぬ,Script挿入型ActionScriptエディタです。 イメージをスクリプトにするなら, on (release) {  TXT1 = TXT の1文字目からカーソルまで;  TXT2 = TXT のカーソルから最終文字まで;  TXT = TXT1 + "ActionScript(値)" + TXT2; } みたいな感じです。 これを実現するActionScript,または方法はあるのでしょうか。 そんなことも知らないのか! などと思われそうな気もしますが,ここでの質問は初心者ですのでよろしくおねがいします。

    • ベストアンサー
    • Flash
  • Flashでボタンをつくっているのですが、actionscriptをつ

    Flashでボタンをつくっているのですが、actionscriptをつかってボタンをクリックさせたいのですが、アクションパネルのところに「現在の選択範囲にアクションを割り当てることはできません。」と表示されてしまいます。 参考書に附属されているflaをみたところ、Actionscript1.0、2.0となっているのですが、作成しているのはActionscript3.0で作っています。 ====== on (release) { /*↑ボタンが押されて離されたら*/ _parent.gotoAndPlay("about"); /*↑「about」ラベルへ移動*/ } ====== このようなscriptをいれたいのですが、うまくいきません。 ムービークリップでボタンを作るまではできました。その後、何かが抜けているのかして上記のようなエラーがでます。 flash初心者のため、どういう風に書いて質問させていただいたらよいのかわからないのですが、参考flaと見比べたときに「シンボル定義」のなかにあるムービークリップがひとつたりませんでした。(このムービークリップは「navigation」というものですのでそれがありません。) 質問するにはあまりにも情報が少ないかもわかりませんが、何卒ご教授いただけると大変助かります。 宜しくお願い致します。

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

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

    • ベストアンサー
    • Flash
  • FlashのActionScriptでjavascript?

    質問するカテゴリーがここであっているのかよくわかりませんが、よろしくお願いします。 Flashの短い動きがあった後、一部をクリックすると新しいウィンドウが開くようになっています。 今回、そのリンク先を変えてくれとの依頼がきました。 そのクリックする部分のActionScriptをみたところ、 on (release){ getUrl("javascript:OpenNewWindow(3)"); } となっていました。 これはジャバスクリプトを読んでいるということなのでしょうか? もしそうなら、そのジャバスクリプト自体にはどうすればたどりつけますか?

    • ベストアンサー
    • Flash
  • flash actionscriptで、ステージ上に30コあるmcを一括で消したい

    困ってます。 attachMovieで複製した、それぞれtype1、type2、type3…と名付けられたMCを、あるボタンをクリックすることですべてクリアにしたいのですが、どうすればよいのかが分かりません。。 removeMovieClip();が効かなかったので、 unloadMovie();を使って、 クリアするボタンに、 on (release) { _parent.type1.unloadMovie(); _parent.type2.unloadMovie();        ・        ・        ・ _parent.type30.unloadMovie(); } としていけば消えるのですが、 30もあるとそれが面倒くさいので、簡単に、何行かで済んでしまうようなスクリプトを教えていただきたいです。 配列を使うのかと思い、自分なりにやってみましたが、うまくいかず… どなたか、おねがいします!緊急だったりするので。。 つかっているバージョンはMXです。 上記内容で状況をご理解いただくのに情報が足りなければ、追記していきますので、よろしくおねがいします。

  • FlashのActionScriptについて

    FlashのActionScriptについて質問です。 Yesか Noを選択する、診断テストみたいなフラッシュを作りたいのです。 1フレームには一番はじめの Yes Noが表示されています。 それのどちらかのボタンをクリックするまで、次のフレームに流れないようにするには、 1フレーム目にstop();でよいのでしょうか? それとも、sotoAndstopとかなのでしょうか? また複数のレイヤーがあるときstop();などのアクションスクリプトは 全部につけなければいけませんか?

  • ActionScript3.0がわからない!

    ActionScript3.0がわからない! FlashCS4でアクションスクリプトを使ってボタンにアクションをつけたいです。 けど今までの方法が使えなくなっているのに愕然としました。 従来では、ボタンを作成しシーン上に配置した後ボタンを選択。右クリックから「アクション」を選択し、 on(release){getURL("http://okwave.jp/")} と書いておけばボタンを押したらリンク先に飛んでくれたのに、3.0ではボタン自体にアクションがつけれなくなっているではありませんか!! この時点で、もうお手上げ状態になっちゃいました。参考書読んでも訳わからんって感じです。どなたか、僕に教えてください。ボタンにアクションを与える方法を!

    • ベストアンサー
    • Flash
  • ActionScript3.0のスクリプトの書き方

    Flash CS5を使ってWebページへのリンクボタンをつくりました。on (press)状態でリンクさせたいのですが、ActionScript3.0でのスクリプトの書き出し方がわかりません。よろしくお願いします。

  • javascriptでFLASHのActionScriptを制御できるのでしょうか?

    いつもお世話になっております。 表題の通り、MacromediaのFLASH MXでWebのデザインをしております あるぺーじでアクションスクリプトを利用し サウンドをループさせて再生しております、 (このページをA.htmとします) Aのページにリンク(javascriptのopen.windowで)貼っていて 新しいウィンドウ(B.htm)が開いたら(アクティブになったら)Aのループサウンドを停止させ、Bが閉じられて再びAがアクティブになったらサウンドを再生させることは出来るのでしょうか? 現在のアクションスクリプトは下記の通りです --------フレーム1のアクション------------------- ongaku = new Sound(); ongaku.attachSound("voice"); ongaku,start(0,999); ------------------------------------------------- また、ボタンがクリックされたら停止するようにしていますので そのボタンアクションは以下の通りです ------------ボタンアクション--------------------- on (release) { if (dengen <> "ON"){ dengen = "ON"; ongaku.start(0,999); } else { dengen = "OFF"; ongaku.stop(); } } ------------------------------------------------ ボタンは、ダイナミックテキストの値を参照して サウンドが再生されてたり止まったりするようにしました。 フレームでの再生によるムービーなら javascriptでストップさせたりプレイさせたり出来るのは知っているのですが。 javascriptでactionScriptを制御できるのでしょうか? ご多忙中とは存じますが、宜しくお願いいたします。

  • Flash ActionScript3.0ボタン.

    このまえはじめたばかりの初心者です。FlashCS4です。 Flash ActionScript3.0ボタンでフレームに飛ぶ方法がわかりません・・ AS3.0ではボタンにスクリプトが書けないので メインタイムラインの最初のフレームにスクリプトを書くのですよね? アドレスに飛ぶ方法は this.stop(); // イベントを設定 stage.addEventListener( MouseEvent.CLICK , onClick ); // 画面クリックをするとonClickが動作するイベント function onClick ( event:MouseEvent ) { // URLRequestを設定 var url:URLRequest = new URLRequest( "http://www.google.co.jp" ); // 実際にページに飛ぶ navigateToURL( url ); } こちらであっていますでしょうか・・? これをいじってフレームに飛ぼうとおもうのですが、うまくいきません・・ どなたか、flashサイトでもわかりやすいところがあれば ご伝授おねがいいたします。

    • 締切済み
    • Mac