• ベストアンサー

【LoadVars】変数を数値で取り出したい。

まずは【count.txt】に事前に書き込んだ 半角の数値で書いた"0"を同じディレクトリに保存。 1フレームに下記のソースを記述。 hensu = new LoadVars(); hensu.load("./count.txt"); hensu.onLoad = function() { trace(hensu); }; プレビューすると、 traceの出力が【onLoad=%5Btype%20Function%5D】となります。 どうすれば数値で取り出せるのでしょうか??

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

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

普通は, 外部テキストデータは  変数名=値 の形にしなければなりません。 すると, hensu = new LoadVars(); hensu.load("./count.txt"); hensu.onLoad = function() {   trace(this.変数名); }; でその変数の値を取ってくることができます。 単に 0 のような値しか書いていない場合は, 裏技的な使い方として, LoadVars.onData を使います↓。 ------------------------------ hensu = new LoadVars(); hensu.load("./count.txt"); hensu.onData = function(myData) { trace(myData); }; ------------------------------ LoadVars.onData = function(myData) { のように, function の ( )内に, 何か自分で決めた変数名を入れておくと, LoadVars 内の値を取ることができます。

dizzdive
質問者

お礼

早い解答ありがとうございます! 理解できました。

関連するQ&A

  • flashアクションスクリプト LoadVarsについて

    はじめまして。初めて質問させていただきます。 onloadメソッドの中でロードしたデータを変数に代入したいのですが、うまくいきません。記述は以下のとおりです。 var hen; a_lv=new LoadVars(); a_lv.onLoad=function(a){ hen=this.txt } a_lv.load("b.txt"); trace(hen); 出力パネルに”undefined”と表示されてしまいます。 どうしたらうまくいきますか? 分る方いましたら、是非教えてください。

  • LoadVarsで外部テキストファイルを読み込み数値化するには?

    初級の質問で申し訳ありません。 外部に、data.txtというファイルを用意し、中には a=1&b=2&c=3&d=4&e=5&f=6 というテキストデータのみを入れました。 (改行は入っていません。) Flashのタイムラインのフレーム1に、下記コードを記入したのですが、どうしても数値として認識してくれないようで、トレースで表示されるt5は、常に0が表示されてしまっています。 -------------------------------------- System.useCodepage = true; var Mynum = new LoadVars(); Mynum.load("data.txt"); Mynum.onload = function(success) { if (success) { t1= Mynum.a; t2= Mynum.b; t3= Mynum.c; t4= Mynum.d; t5= Mynum.e; t6= Mynum.f; } }; trace(Number(t5)) stop(); -------------------------------------- これから先、t1やt5などに数値演算をして、色々計算をさせたいのですが、どうも数値として認識されていないようです。 (パブリッシュのFlashPlayerのバージョンを5にしたり6にしたり7にしたりしてみると、表示されるトレースのt5は、0だったり、NaNだったりになってしまいます。) 外部データは全てテキストとして読まれるので、 NumberやparseIntで数値化する、とネットで調べて記載したのですが、 他に何か悪い点がありますでしょうか? ご教授頂ければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 引数の渡し方

    いつもお世話になっています。 外部テキスト(data.txt)を読み込んで、内容を配列(txtN)に格納、 表示するスクリプトを組んでいます。 myNameは複数あり、ボタンから渡される引数に応じて myNameを切り替えてtrace(実際には表示)させたいんですが、方法が分かりません。 以下フレームアクション //Shift-JISで読み込む System.useCodepage = true; load_obj = new LoadVars(); load_obj.load( "data.txt" ); load_obj.onLoad = function( success ){ //正常終了時、カンマで分割して配列に格納 if( success ){ my_ary = new Array(); my_ary = load_obj.myName.split(","); } txt01=my_ary[0]; txt02=my_ary[1]; txt03=my_ary[2]; txt04=my_ary[3]; trace(txt01); trace(txt02); trace(txt03); trace(txt04); }; stop(); よろしくお願いします。

    • ベストアンサー
    • Flash
  • テキストファイルの読込について

    _rootの1フレーム目に以下のActionScriptを記述しました。 this.stop (); myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) {   trace("result="+_root.result);  } }; myLoadVars.load("test.txt"); test.txtの中身は以下です。 result=test 実行したところ、結果は result=undefined でした。 result=testにならないのはなぜなのでしょうか?

    • ベストアンサー
    • Flash
  • 外部テキストの値を得るには?

    フラッシュ初心者&質問するのが初めてなので うまく伝わるかどうか心配ですがよろしくお願いいたします。 外部テキストnum.txtにはstr=5という記述があります。 このnum.txtを取り込んで、 5という数値をflash側で変数aaaに代入しました。 --------------------------- var vars = new LoadVars(); vars.load("num.txt"); vars.onLoad = function(num){ if(num){ aaa= vars.str; trace(aaa); } } --------------------------- この場合、ちゃんと5と出力されます。 しかしこの関数内のaaaという変数を他でも利用したいのです。 (例えばvar menu_num:Number = aaa;というように) 単純に下のように記述すると --------------------------- var vars = new LoadVars(); vars.load("num.txt"); vars.onLoad = function(num){ if(num){ aaa= vars.str; } } var menu_num:Number = aaa; trace(menu_num); --------------------------- undefinedが出力されます。 この時にちゃんと5と出力させるにはどうしたらいいのでしょうか。 いろいろグローバル変数など勉強しましたがうまくいきません。 ちなみに外部テキストnum.txtのstr=5というのは、 5という数字のみでもかまいません。 とにかくテキストから数値を取り出す方法を考えています。 ご回答お願いいたします。

    • ベストアンサー
    • Flash
  • 単一のFlashに単一のテキストファイルで複数の内容

    単一のFlashに単一のテキストファイルで複数の内容を1画面で表示させたいのですが、うまくいきません。 状況としては、【kotei1】には表示されますが、【kotei2】【kotei3】【kotei4】にはundefindと表示されてしまいます。 OS:Windows7 Flash:CS4 AS2.0 以下がASになります。 タイムライン1(全てレイヤー別に作成) ■kotei4(Layer4) ■kotei3(Layer3) ■kotei2(Layer2) ■kotei1(Layer1) 各タイムラインAS ■kotei4 System.useCodepage = true; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { kotei4.text = my_lv.name4; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("name.txt"); ■kotei3 System.useCodepage = true; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { kotei3.text = my_lv.name3; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("name.txt"); ■kotei2 System.useCodepage = true; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { kotei2.text = my_lv.name2; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("name.txt"); ■kotei1 System.useCodepage = true; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { kotei1.text = my_lv.name1; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("name.txt"); ***name.txt*** &name1=固定1 固定1を表示しています。& &name2=固定2 固定2を表示しています。& &name3=固定3 固定3を表示しています。& &name4=固定4 固定4を表示しています。& ***テキストデータsample***

  • LoadVarsでPHPから変数を読み込む件について

    質問させていただきます。 PHPで、変数$usernameに入っている値をActionScriptに渡したいのですが、上手くいきません。 ■PHP側 echo "name=".$username; ■ActionScript側 var username: LoadVars = new LoadVars(); username.onData = function(src) {  if (src == undefined) {   trace("Error loading content.");  }  trace(src); }; username.load("./view.php"); trace(username.name); 試しに上記のような形で実行してみました。 onDataの中の「trace(src)」の出力によると、PHPを読み込んではいるのですが、echoの部分だけではなく、<?php ~ ?>のように、PHP全体を読み込んでしまっていることがわかりました。(しかも何故か1行ずつ行間を空けた状態で…) ちなみに一番最後の「trace(username.name)」は何も出力されませんでした。 Webで調べると、例えばPHP側で「echo "name=admin";」のように、直接値を表示しているものばかりのような気がしました。 私のような場合、欲しい部分だけをloadするにはどうすればよいでしょうか。どうぞご教示願います。

  • 外部テキストファイルでは文字間隔が反映されません

    初心者です。 外部テキストファイルを読み込んで、プロパティ上で文字間隔を設定しておりますが、文字間隔が反映されません。 フレームアクションは以下のように設定しております。 以下のサイトよりコピペで貼り付けました。 http://support.adobe.co.jp/faq/faq/qadoc.sv?228629+002 System.useCodepage = true; var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { my_txt.text = my_lv.textContent; } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("myExternalText.txt"); どのようにしてよいのかわかりません。 よろしくお願いします。

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

    テキスト・ファイルを読み込みについての解説で、 基本的な流れは, 1. LoadVarsクラスのインスタンスを生成 2. 読み込んだあとの処理を作成(onLoadイベントハンドラの設定) 3. 読み込み - スクリプト - var textReaderLV:LoadVars = new LoadVars(); textReaderLV.onLoad = function() { trace("「hoge」の値は," + textReaderLV.hoge); }; textReaderLV.load("data.txt"); という説明が書かれているのですが、2と3が逆のような気がしてしまうのですが、3番目に読み込みとなっている事には何か意味があるのでしょうか? 一応、2と3を入れ替えてプレビューしたところ特に問題なかったのですが、上記は学習のためにシンプルに書かれたスクリプトなので、もしかしたら本来的な意味合いで、3番目に読み込みが来る事に何か意味があるのかな??と思い質問させていただきました。 LoadVarsによるテキストファイルの読み込みをするとき、上記のような流れで読み込み後の処理を先に実行し、後から読み込みとするのはなぜなのでしょうか? ご教授やアドバイスなどいただけたらと思います。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部のテキストを読み込んで数値として使う。

    下記のような内容のテキストファイルがあり 各行を各フレーム目のクリップのx座標y座標 に当てはめたいのです。 一フレーム目は(x,y)=10,10 5フレーム目は(x,y)=50,50 といった具合に テキスト(ppp.txt)の内容 10,10 20,20 30,30 40,40 50,50 60,60 70,70 80,80 90,90 メインのタイムラインに var load_lv:LoadVars = new LoadVars(); load_lv.load("ppp.txt"); load_lv.onData = function(s) { if (s.length > 0) { myFunction(s); } } function myFunction(s:String):Void { var lines:Array = s.split("\n"); for(i=1;i<9;i++){ var Array_1:Array = lines[i].split(","); clip_1._x = 5*Number(Array_1[0]); clip_1._y = 5*Number(Array_1[1]); } } これでは無理でした、、、 お願いします

    • ベストアンサー
    • Flash

専門家に質問してみよう