• 締切済み

flash10対応の為のASの修正

flashのアクションスクリプトについてなのですが バージョンの10に対応するにはどうしたらよいでしょうか ソースは以下になります。 // ========================= // バージョンチェック // ========================= version = getVersion(); version = version.split(" "); userAgent = version[0]; version = version[1].split(","); majorVer = Number(version.split(" ")[1].split(",")[3]); minorVer = version[2]; _root.flaVer.text = "userAgent = " + userAgent + " / version = " + version + "n"; _root.flaVer.text += "majorVer = " + majorVer + " / minorVer = " + minorVer; _root.flaVer.autoSize="left"; if (majorVer>=7) { this.gotoAndPlay("urlRead"); }else{ this.gotoAndStop("non"); } バージョン10の場合もurlReadにとばしたいというscriptです。 宜しくお願いします。

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

みんなの回答

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

> バージョンの10に対応するにはどうしたらよいでしょうか バージョン10 とは FlashPlayer10 のことだと思いますが, FlashPlayer10 以前の問題で7でも変ですよ。 と言いますか, FlashPlayer10 と それ未満の問題は一切含まれないと思います。 スクリプトを1行ずつ見ていけば良いのです。 ========================================== // 「↑」はバージョンが WIN 10,0,12,36 であった場合の例 version = getVersion(); // ↑変数 version = "WIN 10,0,12,36" version = version.split(" "); // ↑配列 version = ["WIN","10,0,12,36"] userAgent = version[0]; // ↑変数 userAgent = "WIN" version = version[1].split(","); // ↑配列 version = [10,0,12,36] majorVer = Number(version.split(" ")[1].split(",")[3]); // ↑変数 majorVer //  = 配列version を " " で分割した2番目要素を //   さらに "," で分割した4番目の要素 // (???何コレ意味不明。) ========================================== ここまでで意味不明状態に突入しますから, これ以上先には進めなくなります。 それと, 変数であったはずの version が,突如 配列version に切り替わったりするため, ますます混乱するのだと思います。 次のように変更すればできると思います。 ========================================== // 「↑」はバージョンが WIN 10,0,12,36 であった場合の例 version = getVersion(); // ↑変数 version = "WIN 10,0,12,36" versionArr = version.split(" "); // ↑配列 versionArr = ["WIN","10,0,12,36"] userAgent = versionArr[0]; // ↑変数 userAgent = "WIN" versionArr = versionArr[1].split(","); // ↑配列 versionArr = [10,0,12,36] // 配列の要素を結合して文字列を得る version = versionArr.join(","); // ↑変数 version = "10,0,12,36" // 配列の最初の要素を削除してその要素を得る majorVer = versionArr.shift(); // ↑変数 majorVer = "10" // 残った配列の要素を結合して文字列を得る minorVer = versionArr.join(","); // ↑変数 minorVer = "0,22,0" _root.flaVer.text = "userAgent="+userAgent+" / version="+version+"\n"; _root.flaVer.text += "majorVer="+majorVer+" / minorVer="+minorVer; _root.flaVer.autoSize = "left"; if (Number(majorVer)>=7) { this.gotoAndPlay("urlRead"); } else { this.gotoAndStop("non"); } ========================================== 最初の行  version = getVersion();  // ↑変数 version = "WIN 10,0,12,36" ここですでに, 「WIN 10,0,12,36」 まで,ちゃんと得られているのですよ。 この文字列 「WIN 10,0,12,36」 を,配列を使って操作して, 「WIN」 と 「10」 と 「10,0,12,36」 と 「0,12,36」 をバラバラに取りだしているというだけです。  

koyo46
質問者

お礼

BlurFiltan様 ご回答有難うございます。 よくよく見た結果原因は違うところにあったようです。。。 すいません。ありがとうございました。

関連するQ&A

  • else if文の順序を変えることに意味がありますか?

    else if文の順序を変えることに意味がありますか? 「スプライトに記述したクリップアクションです。 実行される内容はどうでも良いのですが、 else if文の順序を変えることに意味がありますか?」 ×(2)の部分だけが実行されません。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5);     } } ○全て実行されます。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1);     } } 「(1)と(2)の順序を変えただけで正しく実行されるようになりました。 しかし、なぜ?上手くいったのか、どこが間違いなのか分かりません。 else ifに順序なんかあるんでしょうか? こられのスクリプトに違いがありましたら、教えていただけませんか?」

    • ベストアンサー
    • 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
  • suzukaのスクリプトで

    suzukaでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。 その1.フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいので20フレーム目に以下のスクリプトを入れたのですが、どちらも使えませんでした。具体的な解決策はありますでしょうか。 ●[parse error]とエラーが出る this.stop(); on(keyPress ("a")){ _root.gotoAndPlay(21); } ●キーを押しても何も起こらない this.stop(); if(Key.isDown(Key.RIGHT)){ _root.gotoAndPlay(21); } else if(Key.isDown(Key.LEFT)){ _root.gotoAndPlay(31); } その2.フレームアクションの10フレーム目に this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); }; とボタンのスクリプトを入れると、 どこのフレームまで移動しようが 同じボタンへの命令で上書きするまで このボタンへの効果が持続されてしまうのですが、 押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?

    • ベストアンサー
    • Flash
  • 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で調べながら勉強をしています。 プルダウンメニューのスクリプトで、リンクまでを説明しているサイトがあれば、ご教授ください。 どうぞよろしくお願いします。

  • 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

  • now loding.......

    onClipEvent (load) { total = _root.getBytesTotal(); } onClipEvent (enterFrame) { loaded = _root.getBytesLoaded(); percent = int(loaded/total*100); text = " "+percent+"%"; gotoAndStop(percent); if (loaded == total) { _root.gotoAndPlay(2); } } と、いうスクリプトが記述されているのですが、すべてダウンロードしないうちに再生してしまい、ナローバンドで見たときに、途中の動きがギクシャクしてしまいます。 このスクリプトをどういじれば解決するのでしょうか? ご教授くだされば幸いです。

  • Flashのキーボード操作で

    キーボードのテンキーでコマンドを選択するアクションスクリプトをくんでいるのですが・・・・・ onClipEvent (keyDown) { if (Key.isDown(Key.UP) or Key.isDown(Key.DOWN)) { this._y += 30; } else if (Key.isDown(Key.UP) or Key.isDown(Key.DOWN)) { this._y = -30; }else if (Key.isDown(Key.LEFT) or Key.isDown(Key.RIGHT)){ this._x = +50; }else if (Key.isDown(Key.LEFT) or Key.isDown(Key.RIGHT)){ this._x = -50; } if (Key.isDown(Key.SPACE)) { _root.flag = 1; } } というアクションスクリプトを組むと上下はうまく移動するのですが横移動がうまくいきません。いきなり予期しないところに移動してしまったりしてしまいます・・・・。

    • ベストアンサー
    • Flash
  • ムービークリップがマウスカーソルを追いかけ、マウスカーソルと同じ位置に来たときにムービークリップを変えたい

    以下のようにスクリプトを書いたのですが ムービークリップがマウスカーソルと同じ位置に来ても ムービークリップがフレーム2に移動しません。 ドラゴンクエストVIIIのトップページのFlashのような 表現をしたいのですがうまくいきません。 http://www.square-enix.co.jp/dragonquest/eight/ _mc.onEnterFrame = function() { this._x += ( _root._xmouse - this._x ) / 5; if( this._x == _root._xmouse ) this._mc.gotoAndStop(2); else this._mc.gotoAndStop(1); }; どうすればこの問題を解決することができるのでしょうか。 ご存知の方がおられましたらご回答をよろしくお願いします。

    • ベストアンサー
    • Flash
  • 格納式の動くメニューとヒット領域判定について

    ロゴをさわると格納されていたメニューがモーションを伴いながらでて、そのまま消えずに維持、一定以上左のエリアにいってしまうとメニューが消えるメニューを作りたいと思っています。 http://fashion.dior.com/dior.html イメージとしてはこちらのどれかリンクを選んでいただいて各コンテンツを表示させるメニューをクリックした時の動きが近いです。 格納→維持→エリア外にいくと消えるしくみまではなんとか作れたのですが、不思議なことにメニューが現れるときにモーションをともなわず、最後のフレームだけが再生されるようになってしまいました。 なお、ロゴには下記のスクリプトをつけました。 ヒットテストにしていないのはその後も条件をつけるためにはヒットテストだとできない?かなと思ったからです。 onClipEvent (mouseMove) { if (this._parent._xmouse>749.6 && this._parent._xmouse<966.6 && this._parent._ymouse<228.6 && this._parent._ymouse>28.6) { this._parent.menu.gotoAndPlay(2); } else if (this._parent._xmouse<698.9) { this._parent.menu.gotoAndStop(1); } else { this._parent.menu.gotoAndStop(7); } } 表示させるメニューのムービークリップ(menu)には onClipEvent (mouseMove) { if (this._parent._xmouse>698.9) { this.gotoAndStop(7); } else if (this._parent._xmouse<698.9) { this.gotoAndStop(1); } } と書きました。 かなり無理矢理なスクリプトだと思いますがご教授お願いします。! ちなみに制作環境はflashMX2004です。

  • FLASHのボタンでif文を使ってラベル移動する方法

    こんにちは、現在FLASHのゲームを作っております。 選択肢(ボタン)によってHPが減少していくゲームで、HPが0以下になったらGAMEOVERのフレーム(ラベル)に飛ばし、HPが0以下でなかったらsentou2のフレーム(ラベル)に飛ぶ、というスクリプトはどうすればよいのでしょうか? ログもいろいろ拝見させていただいて、以下のソースを書いているのですが「対応するif文のないelseを検出しました」というエラーが出てしまいます。 この場合のif文はelseは必要がないのでしょうか…? on (release) { if(hp<=0); this.gotoAndStop("gameover"); }else{ this.gotoAndStop("sentou2"); } 少し言葉足らずかもしれませんが どなたか分かる方おられましたらよろしくお願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう