• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:内容)

Flash8でのダイナミックテキスト読み込みと条件分岐の方法

BlurFiltanの回答

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

> 開発環境 > Flash8 > actionscript1.0&2.0 それでしたら loadVariables("test.txt"); という超時代遅れ(旧世紀)のスクリプトを使う必要がないと思います。 それにこだわる必要があるのでしょうか? 例えば 携帯用の Flash Lite 1.1 対応限定にするなら 今でもそうせざるを得ないかもしれませんが それならそうと書いてくれないと困るわけですし そう書かれていないのであればそのようなものにこだわる必要はないと思います。 結局 loadVariables関数 の何がいけないのかと言うと この関数は 「外部テキストデータをロードしろ!」 とそこまでで終わるんです。 日常生活に喩えると 私が あなたに  「ハワイに行ってキラウエア火山の写真を撮ってこい!」  と言って終わっている それだけと同じことなのです。 「ハワイに行ってキラウエア火山の写真を撮ってこい!」 と言われても瞬時に撮ってくることは不可能ですよね。 不可能なのに,  「ハワイに行ってキラウエア火山の写真を撮ってこい!」  「そして,噴火の様子を今 即答しろ!」 それは無茶ですよ。 そんな命令をする人自体がおかしいです。 もし私があなたにそんなことを命令する上司であれば,私は上司失格です。 Flash MX (これでも 2002年ですよ) 以上であれば LoadVarsクラスのスクリプトが使えます。 これを使うと 「取ってきたよ!」 という報告をくれるイベントハンドラメソッドが用意されているので, 実際にデータを取って来てから,次の命令を下すことができます。 とりあえずテキストフィールドからは 古すぎて混乱を招くだけの「非推奨機能」である「変数名」を取ります。 「インスタンス名」である「my_txt」だけを残します。 そしてそのフレームに次のように書きます。 ------------------------------ //このフレームで再生を停止 stop(); // myVars という LoadVarsクラスのインスタンスを作成 var myVars = new LoadVars(); // myVars にデータがロードされたとき実行するイベントハンドラメソッドを定義 myVars.onLoad = function() { //テキストフィールドmy_txt.に外部データのstr1の値を表示 my_txt.text = myVars.str1; //もし外部テキスト内の変数str1の値が1であれば if (myVars.str1 == "1") { gotoAndStop(2); //もし外部テキスト内の変数str1の値が2であれば } else if (myVars.str1 == "2") { gotoAndStop(3); } }; //myVars に外部データをロード myVars.load("test.txt"); ------------------------------ なお外部テキスト内のデータですが 「str1=1」 とか 「str1=2」 とかのように 改行を含まないデータにしてください。 たとえば 「str1=1 」 こんなのはダメです。 上のようなデータだと 変数 「str1」 の値は 「1改行コード」 となり 「1」 とは等価でなくなります。

jackcell
質問者

お礼

度々BlurFiltanさんの回答を 拝見しますが、毎回わかりやすい説明です。 有難うございます。

関連するQ&A

  • Flashの外部テキスト読み込みについて

    FlashのActionScriptに外部テキストから変数をに数値を格納したいのですが以下のようにしても出来ません。 教えてください。 System.useCodepage = true; loadVariables ("maisu.txt",_root); a = maisu; gotoAndStop(a); ________________maisu.txt____________________ maisu=5 Flash8を使っています。よろしくお願いします。

  • loadMovieとonEnterFrameについて

    はじめまして FLASH8を使用しています。 ActionScript初心者です。よろしくお願いします。 単体のswfだと機能するのですが、loadMovie後機能しなくなってしまいます。 読み込ませる側のアクションは ▽ボタンシンボルに on (press) { _root.moveMenu_1 = -138; menu_name.text = "キッズメニュー"; menu_text.text = kidsData; } ▽フレームアクション loadVariables("kidsmenu.txt", this); loadVariables("menmenu.txt", this); loadVariables("ladymenu.txt", this); loadVariables("seniormenu.txt", this); moveMenu_1 = -296; this.onEnterFrame = function() { img_y._x += ((0-moveMenu_1)-img_y._x)*0.1; }; MCのインスタンス名は「img_y」です。 他にボタンが3つほどあります。 swf単体だと機能します。 loadMovie後text・外部テキストは読み込むのですが、スクロールしなくなってしまいます。 これを3_1.swfとしました。 読み込む側のアクションは ▽ボタンシンボルに on (press) { _root.moveMenu = 2100; } 他に4つほどボタンがあります。 ▽フレームアクション scroll_flag = 0; moveMenu = 0; this.onEnterFrame = function() { if (scroll_flag == -1) { if (back_img._x<0) { moveMenu -= 20; } else { moveMenu = 0; } } if (scroll_flag == 1) { if (back_img._width+back_img._x>700) { moveMenu += 20; } else { moveMenu = 2800; } } back_img._x += ((0-moveMenu)-back_img._x)*0.1; }; back_img.c_1.loadTarget.loadMovie("1_1.swf"); back_img.c_2.loadTarget.loadMovie("2.swf"); back_img.c_3.loadTarget.loadMovie("3_1.swf"); back_img.c_4.loadTarget.loadMovie("4.swf"); back_img.c_5.loadTarget.loadMovie("5.swf"); スクロールするMCを「back_img」としました。 他に読み込んだものは機能したんですが 3_1だけうまく機能しません。 長々と失礼しました。

    • ベストアンサー
    • Flash
  • 以下のActionScriptをスッキリさせたいのですが、良い方法はな

    以下のActionScriptをスッキリさせたいのですが、良い方法はないでしょうか? (flash MXを使用しています。) if (aaa1 == 1) { mc1.gotoAndStop(2); } if (aaa1 == 2) { mc1.gotoAndStop(3); } if (aaa1 == 3) { mc1.gotoAndStop(4); } if (aaa1 == 4) { mc1.gotoAndStop(5); } ・ ・ ・ if (aaa2 == 1) { mc2.gotoAndStop(2); } if (aaa2 == 2) { mc2.gotoAndStop(3); } if (aaa2 == 3) { mc2.gotoAndStop(4); } if (aaa2 == 4) { mc2.gotoAndStop(5); } ・ ・ ・ if (aaa3 == 1) { mc3.gotoAndStop(2); } if (aaa3 == 2) { mc3.gotoAndStop(3); } if (aaa3 == 3) { mc3.gotoAndStop(4); } if (aaa3 == 4) { mc3.gotoAndStop(5); } ・ ・ ・ 初心者で、このActionScriptの効率的な書き方がわかりません(^-^;) functionを使えばいいのでしょうか? どうぞよろしくお願い致します。

    • ベストアンサー
    • Flash
  • FLASH外部テキスト読込 タグを読まない

    FLASHの外部テキスト読み込み お世話になります。 アクションスクリプトがあまり分かりません(^^;) FLASH MXの外部読み込みで質問があります。 ボタンクリックで外部テキストとjpgを読み込みたいのです。 Scrollber(コンポーネント)のtarget TextFirldに ダイナミックテキストのインスタンス名を入れると スクロールはするのですが、txtファイル内のタグが 露出してしまいます。 target TextFirld、ダイナミックテキストからそれらを 除くとタグは効くようになるのですが、今度は長文でも スクロールバーが動かなくなります。 ◆ステージの1フレーム目 -------------------------------------- System.useCodepage = true; disp.condenseWhite = true; loadVariables("text/01.txt", "bun"); loadMovie("img/a.jpg", "jpeg"); ◆テキスト1ボタン -------------------------------------- on (press) { loadVariables("text/01.txt", bun); loadMovie("img/a.jpg", jpeg); } ◆テキスト2ボタン -------------------------------------- on (press) { loadVariables("text/02.txt", bun); loadMovie("img/b.jpg", jpeg); } ◆ムービークリップ名:jpeg ◆ダイナミックテキストインスタンス名:bun タグが効くようになるにはどうすればよいでしょうか? どうぞよろしくお願いしますm(_ _)m

  • Flashのactionscriptについて

    FlashMXを使っています。それで、変数名をつけたダイナミックテキストに 文字を外部テキストファイルから呼び出そうとしました。 まずダイナミックテキストをムービークリップにして、 actionscriptをこう記述しました。 onClipEvent(load) { this.loadVariables("test.txt") ; } test.txtは呼び出すファイルの名前です。 で、テキストの方は、textbox=代入する文でやりました。(textboxは ダイナミックテキストの変数名) そしていざ出力してみると、文字化けしてしまいます。なぜでしょうか?

  • HTMLレンダリングについて

    お世話になります。FLASH8の質問です。 外部テキストをloadVariablesでムービークリップの中にロードする際に、「HTMLレンダリング」をonにして<font color="#cc0000">したいのですがうまくいきません。 ムービークリップは二つ(インスタンス名:「title_mc」「honbun_mc」)あり、それぞれがダイナミックテキストボックスを持ち、インスタンス名を「title_txt」「honbun_txt」としています。 テキストファイルは"text.txt"で、 内容は title=・・・ &honbun=・・・<font color="#cc0000">・・・</font>・・・ シーン1の1フレーム目に this.loadVariables("text.txt"); this.onData = function() { this.title_mc.title_txt.text = title; this.honbun_mc.honbun_txt.text = honbun; }; プロパティパネルの変数ボックスには何も記入していません。 この方法で出来ると思うのですが・・・うまくいきません。 HTMLレンダリングはムービークリップ内では効かないのでしょうか?それとも何かコツがありますか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • javascriptで困っています。教えてください

    以下のようにjavascriptの内容を書いた外部のテキストファイルを読み込んで、実行しようとしているのですが、うまくいきません。普通にjavascriptを読み込むのは分かっているのですが、このような方法ができないのでしょうか?よろしくお願いします。 <!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> <div id="jsbox"></div> <script type="text/javascript"> var jsbox = document.getElementById("jsbox"); //非同期通信///////////////////////////////////////////// var xmlHttp; loadText(); function loadText(){ if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp = null; } } xmlHttp.onreadystatechange = checkStatus; xmlHttp.open("GET", "http://xxxxxxxxxxxx/js_test.txt", true); xmlHttp.send(null); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ var str = xmlHttp.responseText;alert(str); jsbox.innerHTML = str; test_js(); } } ///////////////////////////////////////////////////////////////// </script> </body> </html> テキストファイルをhttp://xxxxxxxxxxxx/js_test.txtに置き、テキストファイルの内容が <script type="text/javascript"> function test_js(){ alert("test"); } </script>

  • 文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結

    文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結果? 下記コードのように「文字列に半角・全角スペースが入っているかをチェックする関数」を作りました。 $textに入る文字列に半角・全角のスペースが入っているかをチェックします。 -------------------------------------------- my $text = "東 京"; if( isSpace($text) ) {   print "スペースあり"; } else {   print "スペースなし"; } sub isSpace{   my $str = shift || return(undef);   if( $str =~ /.*[\s ]+.*/ ){     return(1);   }else{     return(0);   } } -------------------------------------------- しかしなぜか1行目を my $text = "メ"; とするとスペースが入っているという結果になってしまいます。 なぜ「メ」が入ると半角もしくは全角のスペースとみなされてしまうのでしょうか? また、どうすれば正しくチェックできるようになりますか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • FlashVarsのリンク読み込みについて

    お世話になります。 変数を利用して個別にflashvarsを設定したいと考えています。 --html▼-- <param name="FlashVars" value="変数1" /><param name="FlashVars" value="myURL=変数2"> --html▲-- --actionscript(シンボル1-ボタン)▼-- on (release) { getURL("", "_self", "GET"); } --actionscript▲-- --actionscript(シンボル2-ムービークリップ)▼-- this.createTextField("myTxt", 100, 0, 0, 100, 20); myTxt.autoSize = "left"; if (_level0.myURL == undefined) { myTxt.text = "myURL is not defined"; } else { myTxt.text = _level0.myURL; } --actionscript▲-- myURL=変数2は取得できますし、きちんと表示も行われますが、 変数1のほうは取得はできますがクリックしてリンク先に飛べません。 シンボル1のボタンの内容を、シンボル2に書いてみましたが、どうしてもうまくいきません。 swfファイルから直接クリックするとリンク先に飛ぶ事は可能でした。(もちろん変数は取得できません) htmlからはクリックしても無反応です。 どうぞ解決策をご教授ください。 よろしくお願い致します。

  • エクセルVBA テキストボックス 金額の入力

    エクセルVBA ユーザフォームにて「商品登録」を作成しています。 単価を設定するテキストボックスについて2つ質問させてください。 1.単価が小数点以下の場合の処理 2.小数点なしの単価を小数点ありの単価に修正する方法 1.以下の方法で小数点ありとなしを判断しているのですが、 もっと簡単な方法があれば教えていただきたいです。 Set mytxt = Me.Controls("txt4") If mytxt.Text <> "" Then   tanka01 = mytxt.Text   tanka02 = Application.WorksheetFunction.RoundDown(tanka01, 0)   If tanka01 = tanka02 Then     mytxt.Text = Format(tanka01, "#,##0")   Else     mytxt.Text = Format(tanka01, "#,##0.0")   End If End If 2.上記方法で、単価をデータに設定後、変更を行うため、 TextBox内に単価を出力し変更できるようにしているのですが、 1度小数点なしで設定してしまうと、小数点以下が単価のTextBox内に 入力できなくなってしまいます。 小数点が再度入力できる方法は存在するでしょうか? 以上です。 色々と調べてみたのですが、見つからず、質問させていただきました。 よろしくお願いいたします。