• 締切済み

Flash5で製作したゲームをFlashLite1.1用にしたい

現在、Flash8を使用してFlash Lite1.1でモバイル用のゲームを製作中なのですが、初心者の為パブリッシュバージョンがflash5のものを書き換えて製作しようとしている途中です。 パスやthisの書き換えは分かるのですが、onClipEventは使用できないようで、代わりがわかりません・・・。 以前の質問にもありましたが、私もこれをムービークリップに使用したいのですが、 Flash Lite1.1ではエラーになります。 以下どの部分をどのように変更したら良いのでしょうか? onClipEvent (load) { kaitouNum = 0; } onClipEvent (mouseUp) { if (kaitouNum != 0) { if (kaitouNum == _root.seikai) { kaitouNum = 0; this.gotoAndStop("maru"); _root.seikaiNum++; _root.play(); } else { kaisetu = _root["kaitou"+_root.seikai]; this.gotoAndStop("batu"); } } } ちなみにこの様なものです。 http://hfm-kenchan.com/Lesson/log_qa/D0601104.htm

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

みんなの回答

noname#35109
noname#35109
回答No.2

#1です。 > 四択問題で解答ボタンが四つあり、 > そのボタンの中のひとつが正解って形の場合だと問題文も、 > 一問一問1フレーム毎に記述する事になりますか? それでできるのでしたら, そういう感じで1つ1つ一から作られる方が早道だと思います。 > 今はひとつのフレームに全ての問題文と > 正解ボタンが何番かを記載しています。 そして,そういう仕組みを後から考えれば良いと思います。 ======================================== どっちにしても, 結局,最初から考え直しになりますが, 一応, >> onClipEventは使用できないようで、代わりがわかりません・・・。 これだけについて回答しておきます。 また,ご質問で書かれているスクリプトだけでは,何のことかわかりません。 したかって,ご質問で書かれている URL にある, 「quiz4.fla」を書き換えるという形で回答します。 ※ しかし,onClipEventだけ直しても全く意味がありませんよ。 - - - - - - - - - - - - - - - - - - - - - - - - - まず,4つのボタンが入っている, ムービークリップ自体に書いてあるスクリプト ------------------------------------ onClipEvent (load) { kaitouNum = 0; } onClipEvent (mouseUp) { …省略… } ----------------------------------- を全て消します。 onClipEvent (load) {} は, 結局,ムービークリップ内のフレーム1に書いたことと同じ事になります。  onClipEvent (load) =ムービークリップが表示されたら ですから,そのムービークリップが表示されたら, ムービークリップ内 の フレーム1 が表示されます。 ですから, ムービークリップ内 「アクション」レイヤー フレーム1 は 次のようになります。 ------------------------------------ this.stop(); // ↓これを追加 kaitouNum = 0; ------------------------------------ onClipEvent (mouseUp) { } は, どこでもここでも良いから,マウスをアップしたときに実行されます。 つまり,ステージいっぱいの大きなボタンがあったとして, そのボタンに, on (release) { } を書いたのと同じ事になります。 しかし,ステージいっぱいの大きなボタンなんか必要ありませんから, onClipEvent (mouseUp) { } なんて本来必要ないのです。 ムービークリップ内のタイムラインを見ると, 4ボタンは フレーム1 とそれ以降が仕切られていますから, まず,この仕切を取って(フレーム2 のキーフレームを削除して)  □ 解答ボタン 筆・・|●|●/////////[]|     ↓ 変更 ↓  □ 解答ボタン 筆・・|● ///////////[]| そして, ムービークリップ内の4つのボタンを次のように書き換えれば良いだけです。 左上ボタン ------------------------------------ on (press) { kaitouNum = 1; } // ↓以下を追加 on (release) { if (kaitouNum != 0) { if (kaitouNum == _root.seikai) { kaitouNum = 0; this.gotoAndStop("maru"); _root.seikaiNum++; _root.play(); } else { kaisetu = _root["kaitou"+_root.seikai]; this.gotoAndStop("batu"); } } } ------------------------------------ 右上ボタン ------------------------------------ on (press) { kaitouNum = 2; } // ↓以下を追加 on (release) { if (kaitouNum != 0) { if (kaitouNum == _root.seikai) { kaitouNum = 0; this.gotoAndStop("maru"); _root.seikaiNum++; _root.play(); } else { kaisetu = _root["kaitou"+_root.seikai]; this.gotoAndStop("batu"); } } } ------------------------------------ 左下ボタン ------------------------------------ on (press) { kaitouNum = 3; } // ↓以下を追加 on (release) { if (kaitouNum != 0) { if (kaitouNum == _root.seikai) { kaitouNum = 0; this.gotoAndStop("maru"); _root.seikaiNum++; _root.play(); } else { kaisetu = _root["kaitou"+_root.seikai]; this.gotoAndStop("batu"); } } } ------------------------------------ 右下ボタン ------------------------------------ on (press) { kaitouNum = 4; } // ↓以下を追加 on (release) { if (kaitouNum != 0) { if (kaitouNum == _root.seikai) { kaitouNum = 0; this.gotoAndStop("maru"); _root.seikaiNum++; _root.play(); } else { kaisetu = _root["kaitou"+_root.seikai]; this.gotoAndStop("batu"); } } } ------------------------------------ 同じ事を書き続けていますから, 無駄なことをしていますね。 ですから, ムービークリップ内に決して行かないフレームを作成して, そこに on (release) { } 内の if文を書いて置いて, call関数 で call しても良いと思います。 その辺になってくると,ムービークリップの作成から説明しないとならなくなるので, 回答不能状態になります。 上のようにして, Flash 5 でパブリッシュしてもらうと,ちゃんと動作することが確認できると思いますが, Flash Lite までの道のりはまだまだ遠いですよ。 問題や解答データの用意の仕方やスクリプトもまだまだ変えなければなりません。 ですから, そういう "すでに出来た物" を作り替えるより,最初から考えた方が早いと思います。 "すでに出来た物" からは,それをしっかり理解して,その発想だけを盗めば良いのです。

noname#35109
noname#35109
回答No.1

なぜそういう妙に(必要以上に), 凝ったモノを参考にされているのかわかりませんが(Flash 5 でも普通はそんな変なことはしません。), 単純に, on (release) { } で,正解だったら次へ進んで, 間違いだったら,正解を表示するようにすれば良いのではないでしょうか? Flash Lite 以前に, なぜそんな変てこなことをしなければならないのか,イミフメイです。 正解ボタンには on (release) { gotoAndPlay(正解フレーム); } 間違いボタンには on (release) { gotoAndStop(間違いフレーム); } それだけのことだと思います。 書かれているそのままのことを, Flash Lite でもできなくはないと思いますが, スクリプト自体ではなく, 根本的にファイルの構造を変えないとならないため, ココでの説明(文字だけの説明)は前年ですが,無理だと思います。 せめて,FLA ファイルだけでもやりとりできれば, 説明も不用かもしれませんが, ココではそれもできませんので,"私は" すみませんが回答できませんね…。

erinyanko
質問者

お礼

回答いただき光栄です。 なんだかとても変なことをしていたんですね。 そして疑問が生まれてしまったのですが・・・ 正解の場合正解フレームへ飛んで、間違いの場合は間違いフレームに飛ぶような仕組みになる訳ですが、 四択問題で解答ボタンが四つあり、そのボタンの中のひとつが正解って形の場合だと問題文も、一問一問1フレーム毎に記述する事になりますか? 例えば、問題1の時は正解ボタンは2だけど、問題2の時は正解ボタンは3といった感じで問題毎に正解ボタンはバラバラです。 今はひとつのフレームに全ての問題文と正解ボタンが何番かを記載しています。 初心者な者でまた意味の分からない質問になっていたらすいません・・・。

関連するQ&A

  • Flash みてください!初心者です!!

    憲ちゃんのサイトで質問したのですが、 見てくれている人がいるのか不安です。 http://hfm-kenchan.com/cgi/flash_qa.cgi gooでも憲ちゃんの掲示板でもいいので回答お願いします。 質問内容は、 憲ちゃんの著書のサンプル http://hfm-kenchan.com/xbook/index.htmの sample-b15 スライドバーから数値を取れるように onClipEvent (load) { hensu = "150"; } onClipEvent (enterFrame) { hensu = Math.round(mc._x) ; } と書き、ダイナミックテキストにhensuの値を表示するようにしました。 問題はこのスライドバーを少し傾けて配置したときに hensuの値が表示されなくなったことです。 うまく説明できなくてすみません。 なんでこうなるのかと、値を表示させるためには何をすべきかアドバイスください。 お願いします。

    • ベストアンサー
    • Flash
  • Flash Lite 1.1での簡易パスワード認証の実現

    簡易パスワード認証に挑戦しています。 ところがある問題が… まずテキストボックスを作り、変数をpassと設定しました。 「認証」ボタンに以下のスクリプトを記述しました。 on(release, keyPress "1") { keyword = "pass"; if (pass == PASSWORD) { this.gotoAndStop("OK"); }else{ this.gotoAndStop("NG"); } } で、ここまでは良かったのですが、なんとFlash Lite1.1では this.gotoAndStopが対応していないとのメッセージが… 実際携帯電話でプレビューしてみても、どんなパスワードでもOKに なってしまいました。なるべく簡単なスクリプトで済ませたいのですが、 this.gotoAndStopが使えないFlash Lite1.1でこれを実現するには どこをどう修正すれば良いのでしょうか? Action Scriptに詳しいお方、お助け願います。

    • ベストアンサー
    • Flash
  • 1フレーム~5フレームまで表示されなくなったのは。。。

    こんにちわ毎回お世話になっております 新しいフラッシュを作ったのですが 前回のフラッシュにしようしたロード画面を 使いまわしました。 ムービークリップ自体には onClipEvent (load) { _root.stop(); } onClipEvent (enterFrame) { if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) { _root.gotoAndPlay(5); } } onClipEvent (enterFrame) { this.gotoAndStop(Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)); } と前回同様記述しました。 しかし今回はロード画面がでず 白紙の画面のまま読み込みが完了し そのままフレーム5に進んでしまっています。 何回もやりなおしたのですが どうしても白紙のまま読み込んでしまいます。 これはFLA自体が破損?したのでしょうか? 非常に困っています。 なにかアドバイスがありましたらお願いいたします。 別のロードムービーを作ったものの 白紙のまま読み込みされました。。。 FLASH8 WIN XP使用です。

    • ベストアンサー
    • Flash
  • Flash ふわふわメニュー ロールオーバーでストップ

    下記サイトを参考にして、ふわふわしたメニューを作成したのですが、ボタン(風船)をロールオーバーしたらストップするようにするにはどうしたらよいのでしょうか?使用しているバージョンはFLASH8です。 http://hfm-kenchan.com/Lesson/log_qa/D0609292.htm  onClipEvent (load) {     this._xscale = this._yscale = 10;     vs = 0;  }  onClipEvent (enterFrame) {     vs = vs*0.8+(100-this._yscale)/5;    this._xscale = this._yscale += vs;  }  onClipEvent (load) {     yy = this._y;     rad = 0;  }  onClipEvent (enterFrame) {     this._rotation += 0.2;    rad += 0.1;    this._y = Math.sin(rad)*10+yy;    if (rad > 10)                        } 

  • FLASH ロールオーバーでプルダウンメニュー

    FLASHを勉強中3週目です。 アイコンにマウス、(マウスオーバー)を置くと、ロールオーバーでプルダウンメニューが出るようにし、そのメニューからそれぞれのURLにリンクようなサイトを考えています。 下記のChapter11 メニュー・フォーム:11-01 ロールオーバーでプルダウンメニューを表示を参考にしています。 http://book.mycom.co.jp/support/e5/actionscript10/ 画像を作成しするところまでなんとか出来ましたが、スクリプトがわかりません。 上記のサイトでは onClipEvent (load) { this.Stop(); } onClipEvent (enterFrame) { hitTop = this.hitTest(_root._xmouse, _root._ymouse, true); if (hitTop) { this.gotoAndStop("on"); } else { this.gotoAndStop("off"); } } と書かれていますが、urlにリンクをするまでの説明がありません。 初心者用のFLASHのマニュアルを2冊ほど買って勉強していますが、上記のようなスクリプトが載っていないので、WEBで調べながら勉強をしています。 プルダウンメニューのスクリプトで、リンクまでを説明しているサイトがあれば、ご教授ください。 どうぞよろしくお願いします。

  • flashからflash lite

    質問です。 現在、flash lite1.0の作成をしているのですが、 flash8で作成したゲームをliteバージョンにしたいと考えております。 そこで on (press) { this.play(); _root.addScore(); } この上記のスクリプトをlite仕様にしたいのですが、 どの様に変更したらいいのか、お分かりの方がいましたら 単刀直入に、スクリプトを記述して ご返答の程宜しくお願いいたします。

  • flash:ムービークリップの制御

    誠に不勉強の段お許しください。 Flashで知人のサイトを製作しているのですが、どうしてもうまくいかず投稿させて頂きました。使用してる環境;ソフトはMacOS10.4.11:Flash8.0です。 (1)動かしたい内容は、-rootにムービークリップのスプレー缶があって、それにロールオーバーすると少し上がり指が現れ、そこで止まる。(ムービークリップ10フレーム目で停止) (2)ロールアウトすると逆戻りで元の位置に戻る。 (3)(1)の止まった状態でプレスすると10フレーム目から進み(スプレーされるアクションが入り)指定アドレスに飛ぶ。(ムービークリップ15フレーム目でgetURL) この様な、動きをさせたいのですが 様々解らないなりに調べて、何とか15フレーム目までいって止まり、その逆戻りまでは出来たんですが、10フレーム目で一旦止める事が出来ません...。 onClipEvent (load) { nMove = 0; } onClipEvent (enterFrame) { if (nMove != 0) { nNextFrame = this._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=this._totalframes) { this.gotoAndStop(nNextFrame); } else { nMove = 0; } } } on (rollOver) { nMove = 1;} on (rollOut) { nMove = -1; } 大変恐縮ですが、 なにとぞご教授いただけましたら幸に存じます。

    • ベストアンサー
    • Flash
  • 携帯用Flashでの時間によって表示を変える方法について

    携帯用の時計待受を制作しています。 Flash lite1.1です。Flash8使用しています。 12時台だけ違う表示にさせたいのですが、 常に4フレーム目が表示されてうまくいきません。 以下のスクリプトを2フレーム目に記載しています。 stop(); m = fscommand2("GetTimeHours"); if (m = 12) { gotoAndStop(4); break; } else { gotoAndStop(3); break; } 色々と試してみたのですが、始めたばかりで なかなかうまくいきません。 すみませんがご教授お願い致します。

  • FLASHメニューからHTMLを指定フレームに表示させることについて

    質問させて頂きます。 題名の通りなのですが、FLASHでメニューを作り、 それをcolsでフレーム分けしたHTMLの左フレームに 持っていき、右フレームにメニューから指示された コンテンツを表示させるということをしたいのですが うまくいきません。 右フレームには"main"と名前を付けておきます。 FLASHのボタンシンボルに対して on (press) { getURL("××.html", "main"); } とアクションを付け、更にすべてのメニューを1つの ムービークリップシンボルとして、 onClipEvent (mouseUp) { if (this.hitTest(_root._xMouse, _root._yMouse)) { menuno = math.ceil(this._ymouse/(this._height/_root.contents)); _root.move(menuno); } } とアクションを付けました。 技術的なことはよくわからず、FLASH本に載っていたものを 真似してみたものです。 本についていたCD-ROMでまず動作確認をしてみたときから うまくいってませんでした。 どうやったらうまくいくのか教えて下さい。 環境 winXP FLASHMX IE ver.6 よろしくお願いします。

    • ベストアンサー
    • Flash
  • flash as2.0 hitTest()について

    FLASHMXで作業をしています。 mcが壁に当たると反対方向にmcを移動させたいのですが 以下では、うまくいきません。理由がわかりませんし打開策も わかりません。解決策を教えてください。よろしくお願いいたします。 onClipEvent(load){ this._x=100; this._y=380; } onClipEvent(enterFrame){ this._y -=3; if(_root.tama_mc.hitTest(_root.kabe_mc)==true){ this._y +=5; } }

専門家に質問してみよう