• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AS3.0で,外部ファイルにデータを書き出す方法)

AS3.0で外部ファイルにデータを書き出す方法

このQ&Aのポイント
  • Flash CS3でActionScript3.0を使って体重の記録アプリを作っています。テキストデータを読み込んで体重の推移を表示することや、現在の体重を外部ファイルに書き出して保存することなどを実装したいです。しかし、外部ファイルへの書き出し方法がわからず詰まっています。Shared Objectを使う方法や直接テキストを読み書きする方法があるかどうか知りたいと思っています。
  • 体重の記録アプリを作成中のFlash CS3でActionScript3.0を使用しています。体重の推移を表示するためにテキストデータを読み込むことや、現在の体重を外部ファイルに書き出して保存することなどを実現したいです。しかし、外部ファイルへの書き出し方法がわからずに困っています。Shared Objectを使う方法や直接テキストを読み書きする方法を教えていただけると助かります。
  • Flash CS3でActionScript3.0を使って体重の記録アプリを開発しています。テキストデータを読み込んで体重の推移を表示することや、現在の体重を外部ファイルに書き出して保存することなどを実装したいのですが、外部ファイルへの書き出し方法が分かりません。Shared Objectを使用する方法や、直接テキストを読み書きする方法などがあれば教えていただきたいです。

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

  • ベストアンサー
回答No.3

再び失礼します、No.1です. 私自身Flash Player 9以上対象の案件が多いので 不勉強ながら使った事が無かったのですが Flash Player 10以上対象ならFileReferenceの新しい機能が使えますね. http://blogs.adobe.com/akamijo/archives/2008/07/flash_player_10_5.html FileReference クラス自体は以前からありますが (Playerがローカルファイルのデータを直接操作することができなかったため サーバにファイルをアップロードする位のクラス) Flash Player 10からユーザ操作により ローカルのファイルを直接(←重要)開いたり 保存したりできるようになっています. 説明しておいて何ですが、SharedObjectはデータ保存としては 弱いと個人的に思うので、上記クラスの新APIを使う事により 前回の説明とは異なる設計ができそうです. ただ、CS3をお使いとの事なので Flash Player 10 に対応するコンパイラとエディタ (フリーでFlex SDK +FlashDevelop等)を 使うか、Flash CS4が必要になります. No.2のかたが仰る通り AIRアプリケーションにするのも良いと思います. (その場合ユーザ側にAIRランタイムをインストールさせる必要があります.)

参考URL:
http://blogs.adobe.com/akamijo/archives/2008/07/flash_player_10_5.html
Caryo_t
質問者

お礼

重ねてのご回答,ありがとうございます。 FileReferenceクラスに,そんな昨日が追加されたとは驚きです! 早速リンク先を拝見して,使えそうだと直感いたしました。特に,開くと同時にユーザーが読み込みファイルの指定をできるようにしたいと考えていたので,一石二鳥です。 ゆくゆくはAIRに移行するとして,まずは練習ですのでこちらの方法でトライしてみたいと思います。また,この機能が欲しいので,がんばってCS4かCS5を導入します。 今回は,まさに「待てば海路の日和あり」でした。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

airアプリってことなら…

参考URL:
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filesystem/FileStream.html
Caryo_t
質問者

お礼

ご回答ありがとうございます。 AIRですか。恥ずかしながら、初耳でした。 導入さえしてしまえば、これはとても便利そうですね。 勉強させていただいてから、前向きに導入を検討したいと思います。 多くの方にご意見を伺ってよかったです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

swfファイルのみで直接テキストファイル(メモ帳等で開ける.txtファイル)を 書き出し・保存することはできません. 配布されるということは、ローカルのFlashPlayerで動作させる、または exeファイルにするのでしょうか.一応その前提で回答していますので 的確な回答ではないかもしれません、参考までにご覧ください. SharedObjectを使う方法について SharedObjectは以下のような性質があります. ・ユーザーが意図してローカル記憶領域を0にした場合保存できない ・決められたサイズ以上は保存できない ・保存場所はある程度までしか選べない (一応引数でディレクトリを指定できますが、それはデフォルトの保存先より下に 限定されます)→一つ目のご質問、たとえばデスクトップにあるフォルダ××を 選び、そこに保存するのは無理ということです. SharedObjectを使う場合の 設計の一例をあげておきます. ・入力用テキストフィールド ・入力確定用ボタン ・体重の推移を表示するオブジェクト を用意 ↓ ---------------------------------- 入力確定用ボタンが押されたタイミングで ・SharedObjectを参照(無い場合は作成される) ・記録したいプロパティを持ったObject(例えば{ date:(ボタンが押された日時),weight:(入力された体重) })を作成し、SharedObject.dataにプロパティを持たせて代入し書き込む ---------------------------------- ・SharedObjectを参照(無い場合は作成される) ・SharedObject.dataを走査し、プロパティの値を取り出す ↓ 日時順に並べ替え、体重の推移を描画 注意点は、 ・常に同じSharedObjectを参照するため、SharedObject.getLocal("weightLog")などと 一意の名前を決めておく ・SharedObject.dataに設定するプロパティ名が毎回同じだと上書きされて しまうので、常に異なるプロパティ名を設定する (入力確定用ボタンが押された日時をプロパティ名にする等) 設計を詰めていく段階でほかにも色々注意点は出てきますが省きます. 上記の方法で一応1、2を満たすものはできます.3、は >体重を保存したファイルをswfファイルとセットにして  配布 するのではなく、swfファイルを配布し、これを起動して 体重入力を行うとローカルのsolファイルに体重が保存される、と いうことになりますが….

Caryo_t
質問者

お礼

大変詳しくご回答いただき、ありがとうございます。 やはりFlash単体でファイル操作はできないのですね。 また、SharedObjectには容量の制限をはじめ、数々の制約があるのですね… あまり大量のデータを扱えないとなると、 後々動かなくなる危険性があるということですから、少し心配です。 ですが、まずはお教えいただいた方法で一度作ってみて、 それから問題点が出てくれば、それが解決できなかったときに また質問させていただければと思います。 もうしばらくこのまま締め切らずに置かせていただきますが、 ご回答に不満があるわけではございませんので、悪しからずご容赦下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • as3で、外部ファイルへ書き出ししたい

    AS3で、サーバを経由させずに、ローカル間でデータの読み書きをしたいです。 保存する外部ファイルは、.txtや.xmlにしたいです。 調べてみるとFileReferenceクラスを使ってできるそうなので やってみたのですが、 外部にデータを保存する場合、外部データを読み込む場合ともに いちいちダイアログボックスが開き、 どのファイルを読み込みのか、または どんな名前で保存するのかなどを ユーザーが指定してクリックしなければなりません。 こういったことをせずに (いちいちダイアログボックスが開いてユーザー選択することをせずに)、 例えば外部xmlをローダーで読み込むときのように 自動的にあらかじめ指定したファイルを読み込んだり、 指定した名前で書き出したりといったことをしたいのですが FileReferenceクラスではできないのでしょうか? またAS3そういったことをしたい場合は、 ほかに何か方法はありますでしょうか? 特に、外部読み込みは普通にローダークラスで出来るので問題ないのですが 書き換えて上書き保存みたいなことをしたいので その部分を、ダイアログボックス表示なしで できる方法を知りたいです。 ご存知の方いらっしゃいましたら 何卒ご教授よろしくお願いいたします。

  • 外部のデータファイルの読み込み方法は?

    個人的にホームページを公開しています。 今までデータとなる情報を JavaScript のデータ(配列)として 用意して document.write( 文字列 ); で HTML タグを出力して 使っています。でもデータの部分だけを外部のデータファイルに 分離して JavaScript などで読み込む方法を探しています。 外部のデータファイルはテキストで csv 形式として保存する予定です。 この csv 形式のデータファイルを JavaScript で読み込む方法はありますか? 今までは JavaScript のデータを配列情報として <LINK> でスクリプトを 読み込んで処理しています。今回は csv 形式のデータを読み込みたいです。 JavaScript で出来ますか? 外部データファイルの読み込み方法を教えて下さい。 読み込む方法があるかどうかも知らないため、この辺もはっきりさせたいです。 よろしくお願いいたします。

  • htaccessを設定するとAS3から読み込めない

    現在、ActionScript3.0からテキストファイルを読み込んで、 その内容を表示するというプログラムを組んでいます。 swfファイルと、txtファイルは以下のように配置されています。 root-┐     │     ├swfフォルダー     │     └txtフォルダー   swfフォルダーには、作成したswfファイルを配置し、 txtフォルダーに配置したテキストファイルを読み込ませています。 txtフォルダーへの直接リンクを防ぐため。 (このフォルダーに配置したテキストファイルをブラウザ上には表示させたくない) htaccessファイルに、以下のような記述を行い、 配置したところ、配置する前には読み込めていたテキストファイルが 読み込まれなくなってしまいました。 swf上では全く表示されません。 <FilesMatch "\.(inc|dat|log|txt|csv)$"> Order allow,deny deny from all </FilesMatch> SetEnvIf Referer も試してみましたが、効果がありませんでした。 txtフォルダー内には、PHPでテキストファイルを読み込ませる APから読ませるテキストファイルを配置していますが、 こちらの方は問題なく読み込むことが出来ます。 原因が全くつかめない状態です。 自分としては、AS3からテキストファイルを読み込むPHPを呼び出して、 その戻り値を表示させるという方法も採れると思いますが、 出来れば、AS3から直接読ませる方式をとりたいと思っています。 回避策、解決策をご存じの方がいらっしゃいましたら、 ご教示いただければと思います。 以上、よろしくお願い申し上げます。

  • 外部データ(画像)を使用したFlash(SWF)についてご

    いつもお世話になっております。 外部データを使用したFlash(SWF)についてご質問させて下さい。 あるフォルダに保存されている画像をスライドショー形式で 表示させるFlash(SWF)を作成致しました。 ※簡易的なもので、ただ画像が順次表示されるだけですが・・・。 フォルダに保存されている画像により表示されるスライドショーは毎回異なります。 このSWFをAVIもしくはDVDに変換させようと思ったのですが、 思うように変換できませんでした。 ※様々なソフトを使用しましたが、どれも上手くいきませんでした。 外部データを使用した動的?なSWFだからなのか良く分かりませんが、 スライドショー形式のFlash(SWF)をAVIもしくはDVDに変換した事がある 方いらっしゃいますでしょうか。 また、その方法をご教授お願い致します。 ※当方、通常のFlashSWF(アニメーション等)をAVIもしくはDVDへ変換を  行った事はありますが、同じ方法では上手くいきませんでした。。。

  • 外部テキストファイルが読み込みについて

    FLASH MX 初心者です。 swfファイルに外部のイメージファイルとテキストファイルを読み込ませる仕組みを作っています。 イメージファイルとテキストファイルは既にサーバにあります。 この状況にてPC上で生成した完成swfでは、サーバ上にあるイメージファイルとテキストファイルが表示されます(ここまでは成功です)。 しかし完成したswfファイルをサーバへアップし、完成swfファイルを読み込ませるhtmlページを公開するとテキストファイルだけが表示されません。 イメージファイルは読み込むのに、テキストファイルは読み込まないのは何が原因なのでしょうか。 環境 OS:WindowsXP アプリケーション:FLASHI MX 7.2 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部テキストファイルからの制御

    はじめまして、いつも勉強させていただいております。 一応、過去ログなども見てみたのですが見つけられなかったので質問させていただきます。 最終的に行いたい事は、表題通り外部テキストファイルから、swfを制御させたいと思っています。具体的には、例えばテキストファイルに『03』と書いてあったら『03.swf』を再生する…テキストファイルに『10』と書いてあったら『10.swf』を再生するといったような事です。 初心者ながら色々と調べながら失敗を繰り返したりしているのですが… data.txt(テキストファイル)の中に『&myData1=01&』と記入。 同階層にindex.swf(親swf)『gamen』という名の空インスタンスMC 同じく同階層に01.swf(子swf)… index.swfに書いたASはこんな感じです。 myLV = new LoadVars(); if (myLV.myData1 = "01") { loadMovie("01.swf", _parent.gamen); } myLV.load("data.txt"); 完全に初心者ですので、根本的に大間違いをしているかとは思いますが、救いの手をお願いいたします。 WIN-XP FLASH8です。

  • AS3でSWF単体でデータをXML化したい

    FLASH CS5(ActionScript3.0以下AS3)でコンテンツを作成しております。パブリッシュされたSWF単体で、内部データをXML化してテキストデータとして保存できるようにしたいのです。そこで問題になるのが、SWF単体でXML化できるものかです。データは単純なCSV形式なのでPHPなどを連携すればXML化や保存まで可能ですが、SWF単体ではどうでしょうか。SWF単体で保存までできなくてもよいです(というかAS3はテキスト出力の機能は無いようです)。内部でXML化さえしてくれればそれを表示させて手動でテキストエディタなどにコピペして保存します。よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3.0 外部ファイルの拡張子を正規表現で調べたい

    AS3.0 外部ファイルの拡張子を正規表現で調べたい 外部jpgや外部swfを読み込む際、拡張子を正規表現で調べる方法はありますか? また、substrなどを使うより早いんでしょうか。

    • ベストアンサー
    • Flash
  • 外部から読み込んだSWFファイルがサイズオーオーバー

    初めて質問させていただきます。 質問内容はloadMovieを使って外部からSWFファイルを読み込んでいたのですが、こちらの希望しているサイズに収まってくれません。 (1)740×370SWFファイル(メイン画面) (2)740×270SWFファイル(読み込まれる画面) の2つがあり(1)に(2)を読み込ませるように on (release) { _root.display.loadMovie("alice_pro.swf"); } というふうに記述して読み込んで作動するのです。 しかし、(2)の表示サイズが740×270ではなく、(2)の作成のすべてのオブジェクトが表示されて、希望の枠((2))の中に納まってくれません。 状況: 1、WinXP 2、FlashMX 3、(1)と(2)のSWFファイルは同じフォルダの中 4、loadmovieは機能する 5、(1)の画面に(2)を呼ぶためのボタンを作成し、スクリプトを記入しています。 6、中心点も(1)画面の左上端の置いており、そこを基点として表示されます。 問題点: (2)のSWFファイルが作成時に設定した740×270の枠からはみ出たオブジェクトも表示されるので、これを740×270の画面の中だけを表示させたい。 回りくどくなりましたが、一番やりたいことは(2)画面の中にきれいに収めたいということです。 ご面倒かけてすみませんが、皆さんのスキルを賜りたいと思います。よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部swfの読込について

    1枚のFlashに二つの外部swfを読み込む方法を教えて下さい。 今参考書を見ながらやってみたのですが外部ファイルが読み込まれていないようで 書き出したswfファイルには何も表示されません。 試した方法ですが・・・ 外部swfファイル読込用ムービークリップを作成、 オブジェクトアクションを挿入 --------------------------------- onClipEvent (load) { function Load (file) {  this.loadMovie (file);   } } --------------------------------- フレームを作成し下記アクション挿入 --------------------------------- contents_mc.Load("about.swf") --------------------------------- 使用ソフトはFlash5です。 どうぞ宜しくお願いします。

    • ベストアンサー
    • Flash