外部ファイルから取得したデータを表示して動かす方法

このQ&Aのポイント
  • WindowsXPのProfessional環境でFlash Lite1.1を使用して、外部テキストファイルから取得したデータを画面に表示し、ボタン操作でデータを上下に動かす方法について教えてください。
  • flashlite1.1ではテキストフィールドにインスタンス名が付けられないため、データを動かす方法について詰まっています。loadVariableを使用してデータを読み込ませようとしましたが、表示させることができませんでした。
  • 携帯での動作を考慮し、flashlite1.1を使用しています。知識のある方や参考になるホームページがあれば、回答をお願いします。
回答を見る
  • ベストアンサー

外部ファイルから取得したデータ表示して動かしたい

WindowsXPのProfessional環境でFlash Lite1.1を 使用しています。実現したい動作は以下です。 外部テキストファイルから取得したデータ(複数)を 画面に表示させてそれをボタン操作で上下に動かす。 <画面表示イメージ> aaa bbb ccc ddd aaaからdddまでが外部から取得するデータです。 可変で表示数は増減します。 それを外部テキストから取得します。 動作ですが"8"キーを押下したときに、aaaとbbbが 逆転し、もう一回押すとaaaとcccが逆転します。 こうなります。 bbb ccc aaa ddd 1.外部データの表示はテキストフィールドにはで   きています。(loadVariable使用) 2.データを動かすためにムービークリップをボタン   アクションで動作もできています。 上記1と2を合わせた動作が出来ません。 flashlite1.1ではテキストフィールドにインスタンス 名が付けられないので、動かすことが出来ないと考え ています。 ならばとムービークリップにloadVariableを使って 読みこませようとしたら、どうもloadVariableとい う関数は値を内部的に持てるだけで、表示させられ る訳ではない、という事が判ってきました。 そこで詰まってしまったのです。 外部から取得したデータを表示→ボタン操作という 動きはflashlite1.1では出来ないのではと怪しみ始 めています。 ここの過去ログやgoogleで検索しても、このような 動きを検証しているものが見つけられませんでした。 携帯での動作を考えており、flashlite1.1を使用し ています。 上記について知識のある方、または手がかりとなる ホームページをご存知の方、回答頂けると助かります。 長々と記述して申し訳ありません。

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

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

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

??? なんか複雑に考えすぎてませんか? Flah Lite でも 普通の Flash でも, 表示されているデータを入れ替えるときは, テキストフィールドの配置を入れ替えるのではなくて, 値だけを入れ替えるものではありませんか? 外部テキストのテキストデータのファイル名を「data.txt」とし, その「data.txt」内のデータが ---------------------- myText1=aaa& &myText2=bbb& &myText3=ccc& &myText4=ddd ---------------------- であったとします。 フレーム1に次の2行を書きます ----------------------- loadVariablesNum("data.txt", 0); flag = 0; ----------------------- これで,_level0(_root) に「data.txt」のデータがロードされます。 そして,ステージ上には上から順に, 「myText1」 「myText2」 「myText3」 「myText4」という変数名のテキストフィールドを用意しておけば, それぞれに 「aaa」 「bbb」 「ccc」 「ddd」 が自動的に表示されます。 ボタンを用意して, そのボタンに ------------------------ on (release, keyPress "8") { if (flag == 0) { flaText1 = myText1; flaText2 = myText2; myText1 = flaText2; myText2 = flaText1; flag = 1; } else if (flag == 1) { flaText2 = myText2; flaText3 = myText3; myText2 = flaText3; myText3 = flaText2; flag = 2; } } ------------------------ と書けば, 1回目の キー8 では 「aaa」 と 「bbb」 が入れ替わり, 2回目の キー8 では 「aaa」 と 「ccc」 が入れ替わるので, 表示は bbb ccc aaa ddd となります。 その後の キー8 では無反応です。 =============================== 上記で普通は行けると思いますが, あえて,テキストフィールドを動かす場合の話です。 >> flashlite1.1ではテキストフィールドにインスタンス >> 名が付けられないので、動かすことが出来ないと考え >> ています。 なぜ…? どうしてそういう風に考えるのでしょう。 付かなければ付くようにすば良いだけですよ。 普通の Fash でも, シェイプ(単なる絵) に インスタンス名 を付けたければ ムービークリップ にします。 それと同じで, テキストフィールドもムービークリップに変換すれば良いだけです。 ただ, ムービークリップにした場合, 普通のFlashと同じで少し階層が難しくなることと, ロード待ちを入れないとならないところが面倒です。 まず, 「mcText」という変数名のテキストフィールドを用意します。 それを ムービークリップ に変換します。 そして,そのテキストフィールド入りの ムービークリップ をコピペで4つにします。 そして,縦にならべて上から順に, 「myMC1」 「myMC2」 「myMC3」 「myMC4」 というインスタンス名を付けます。 フレーム1にロードするスクリプトのみを書きます。 -------------------------------------- loadVariablesNum("data.txt", 0); -------------------------------------- これで,_level0(_root) に「data.txt」のデータがロードされます。 フレームを2つ追加して,全体で3フレームにします。 2フレーム目をキーフレームにして,次のようなスクリプトを書きます。 -------------------------------------- /myMC1/:mcText = myText1; /myMC2/:mcText = myText2; /myMC3/:mcText = myText3; /myMC4/:mcText = myText4; -------------------------------------- 3フレーム目もキーフレームにして,次のようなスクリプトを書きます。 --------------------------- if (myText4 eq "") { gotoAndPlay(2); } else { stop(); } --------------------------- これで, 「myMC1」~「myMC4」までに 「aaa」~「ddd」が表示されますから, あとは自由に動かしてください。 loadVars が使えないので, ロード待ち処理が少しやっかいになるだけです。 完全にロードが終わるまで,フレームをループさせています。 でもそれだけのことで,loadVars よりはわかりやすいと思います。 フレーム2 のスクリプトですが, いちいち1変数を1変数に代入していっています。 もっと変数が多い場合は, eval を使用して for文で回しても良いです。 ↓ -------------------------- for (i=1; i<=4; i++) { set("/myMC" add i add "/:mcText", eval("/:myText" add i)); } -------------------------- 以上です。 変数の値を入れ替える方法でも, テキストフィールドの座標を変える方法でも, どちらでもできます。 ※私は,携帯というものを持っていないので   実際の携帯では動作確認をしていません。   上の確認は,Flash のムービープレビュー   (デバイスは携帯)で確認しているだけです。   その点はご了承ください。

nec_0508
質問者

お礼

sassakunさん、丁寧な御回答有難うございます。 非常に参考になりました。 >>テキストフィールドもムービークリップに変換す >>れば良いだけです。 まさしくその通りでした。最初に作成した物では矩形 ツールで作成したものをムービークリップに変換して いました。 その状態で表示させようと躍起になっていたので、 値は変数として使えましたが、Flash画面上に表示 されない状況でした。 テキストツール→ムービークリップに変換したら、 値が表示されてボタンアクションで動作も出来ました >>テキストフィールドの配置を入れ替えるのではな >>くて,値だけを入れ替えるものではありませんか? 何故かこの考えは思いつきもしませんでした・・・ そうですね、値の受渡しで良かったんですね。。。 「パラメータ変化ではなく、実際に座標を動かすに はムービークリップで!」という考えにとらわれて しまいました。 ソース付での丁寧な御解説、非常に判り易かったです しかも、evalの活用法まで記述して頂いたので、活用 しようと考えています。 重ね重ね有難うござました。

関連するQ&A

  • TwitterAPIで取得したデータ内のハッシュタグをタグクラウド化し

    TwitterAPIで取得したデータ内のハッシュタグをタグクラウド化したい と考えておりまして、質問いたします。 現在、TwitterAPIを利用して条件にあったフィードを取得し、MySQLに格納しています。 例のように、テキストには一部、「#」の文字列がついたハッシュタグがついてます。 ━━━━━━━ ▼例 id| text 1 | こんにちは はじめまして #aaa 2 | こんにちは さようなら #bbb 3 | ありがとう さようなら #aaa 4 | どうもどうも #aaa #bbb #ddd 5 | ありがとう 6 | おはようございます #ccc ━━━━━━━ 例を見れば、 #aaa は3つ #bbb は2つ #ccc は1つ #ddd は1つ であることが分かりますが、 これをタグクラウド化するために、 MySQLで「ハッシュタグごとにその数を多い順に抽出する」事は可能でしょうか? つまり、SQLを投げる事で、下記のようなデータが帰ってくる方法を知りたく思います。 ━━━━━━━ TAG | COUNT #aaa | 3 #bbb | 2 #ccc | 1 #ddd | 1 ━━━━━━━ ハッシュタグが複数同じデータの中にある場合が悩ましい所です。 良い方法をご存知の方がいらっしゃいましたらご教示の程お願い致します。 よろしくおねがいします。

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

  • xmlからphpでうまくデータを出力できない

    WEBサービスでリクエストに対して取得したxmlの中で、下記のようなデータがあるのですが、それがうまくphpで出力できなくて困っています。 [xmlのデータ(一部)] <aaa>  <bbb>   <ccc>    <ddd>あいうえお</ddd>    <Date date="05" month="09" year="2009"> [phpのソース] echo $aaa->bbb->ccc->ddd ; echo $aaa->bbb->ccc->year ; ・・・(※) (※)の行は思いつきで書いてしまっているのですが、この状態で実行すると、「あいうえお」は取得できますが、日付が当然取得できません。質問は以下です。 (※)の部分は、どう書けばいいのでしょうか?

    • 締切済み
    • PHP
  • XMLからデータを取得

    いつもお世話になっております。 XMLファイルに含まれたデータの中から、特定のデータを検索するプログラムを作りたいと思っております。 <AAA Name="テスト">    <BBB x="2" y="2"></BBB>    <CCC Num="0001"></CCC>    <CCC Num="0002"></CCC> </AAA> XMLデータの形式は↑みたいな感じで、これが100以上あり、CCCタグは0~5個までです。 フォームにテキストボックスを配置し、そこに検索したい語句を入れ、 AAAタグのNameの中身と合致したら、BBB、CCCの属性をすべて取得して表示するということをしたいのですが、 どうにも上手くいきません。 VB2008を使用しております。 方法をご存知の方、ご教授ください……orz

  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • テキストデータに書いてある文字(行)をシャッフルしたい秀丸エディタなど

    テキストデータにある文字をシャッフルする方法はありますか? 例えば、 aaa bbb ccc ddd eee を eee bbb aaa ddd ccc のような感じでもともと順番にあった行を変えてシャッフルみたいな感じに したいです。 秀丸エディタやさくらエディタでこのようなことは出来ますでしょうか?

  • SQL文 テーブル1つに複数のデータ

    お世話になっております。 SQLでの質問です。 --テーブル---------- F_1 F_2 AAA BBB AAA CCC BBB XXX CCC DDD DDD YYY 1.F_1のAAAを条件にF_2のBBB・CCCを取得し、 F_1のBBB・CCCと、F_2のXXXとDDDを取得します。 2.次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 これを1つのSQLで実行したいのですが、副問合せを駆使しても、良いSQLが思い浮かびません。 有識者の方、ご享受頂きたいです。 宜しくお願い致します。

  • SQL文の書き方

    SQL文の書き方を教えて下さい。 以下の2つのクエリー(1のクエリー&2のクエリー)を1つのクエリーで1度に抽出をかけたいのですがSQL文の書き方がわかりません。 データの発生条件としては TableBのField1は必ずTableAのField1に存在するという条件です。 TableAのField1が「AAA」から「EEE」まである場合は、TableBのField1も必ず「AAA」から「EEE」の範囲内で発生します。 よろしくお願い致します。 1のクエリー ---------------------------------------------------------------- TableA Field1 ---------------------------------------------------------------- AAA AAA AAA BBB BBB CCC DDD DDD EEE EEE EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableA.Field1) as RecCount, TableA.Field1 From TableA 結果 RecCount  Field1 3      AAA 2      BBB 1      CCC 2      DDD 3      EEE ---------------------------------------------------------------- 2のクエリー ---------------------------------------------------------------- TableB Field1 ---------------------------------------------------------------- BBB CCC CCC EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableB.Field1) as RecCount, TableB.Field1 From TableB 結果 RecCount  Field1 1      BBB 2      CCC 1      EEE ---------------------------------------------------------------- 希望する結果 TableAのRecCount TableBのRecCount TableAのField1 3                   AAA 2         1         BBB 1         2         CCC 2                   DDD 3         1         EEE

  • AccessSQL 1つのテーブルに複数のデータ

    お世話になっております。 アクセスSQLでの質問です。 --テーブル---------- F_1 F_2 AAA BBB AAA CCC BBB XXX CCC DDD DDD YYY 1.F_1のAAAを条件にF_2のBBB・CCCを取得し、 F_1のBBB・CCCと、F_2のXXXとDDDを取得します。 次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 つまり、AAAを取得した結果、SQL一つで、上記テーブルデータをF_1:AAA以外、取得したい要件です。 有識者の方、ご享受頂きたいです。 宜しくお願い致します 【自力で考えた結果】 -------------------------- select F_MenuCD,F_ZaiCD from [TABLE] where F_MenuCD IN ( SELECT F_ZaiCD FROM [TABLE] WHERE F_MenuCD IN ('AAA') ); F_1 F_2 BBB XXX CCC DDD を取得するSQLは上記でいけそうなのですが、 DDD YYY を、1つのSQLで取得したいのです。

  • 大量のCSVデータを1つのエクセルデータにまとめる方法について

    今仕事で、CSVファイルが400ファイル程あり、これを一つの エクセルファイルにまとめなくて加工しなければならないのですが うまいことVBAを活用して効率的にできないか思案中なのですが うまい具合に行きません。 データの持ち方として ○CSVファイル1 1.AAA 2.BBB ○CSVファイル2 3.CCC 4.DDD となっており、これを1つのエクセルファイル上で 1.AAA 2.BBB 3.CCC 4.DDD としたいのですがなにかいい方法はないでしょうか? 1つのブックで外部データの取り込みでCSVを次々に選択して いくVBAなんてあれば教えていただけないでしょうか? よろしくお願いします。

専門家に質問してみよう