AS3.0で,外部ファイルにデータを書き出す方法
ご覧いただき,ありがとうございます。
現在,Flash CS3でActionScript3.0を使う練習として,
体重の記録アプリを作っています。
このアプリで実装したいのは,以下の3点です
1.テキストデータを読み込んで体重の推移を表示する
2.テキストボックスなどで現在の体重が入力されると,
それを外部ファイルに書き出して保存する
3.体重を保存したファイルをswfファイルとセットにして
配布すれば,他のPCでも1の作業が行える
このうち,1は比較的簡単に行えるのですが,外部ファイル
への書き出しの方法がわからず,詰まってしまいました。
私が調べた範囲では,Shared Objectを使うことでこれを
クリアできるかもしれないのですが,この方法を使った場合に
作成されるsolファイルを,swfと同じフォルダに作る方法が
分からず,困っております。
また,もしかすると,Shared Objectを使わずとも,
直接外部ファイル(テキストなど)を読み書きする方法があるなら
それを使いたいのですが,これに関しては,そのような方法が
あるのかどうかすら分からないという状態です。
そこで,以下のいずれかにお心当たりのある方がいらっしゃれば
ご助言をいただけますよう,お願い致します。
・solファイルをswfと同じフォルダ(あるいは直下のフォルダ)に
置く方法を知っている
・もっと簡単に,直接テキストを読み書き出来る方法を知っている
(あるいは,そんな方法など無いと断言できる)
以上,よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
再び失礼します、No.1です.
私自身Flash Player 9以上対象の案件が多いので
不勉強ながら使った事が無かったのですが
Flash Player 10以上対象ならFileReferenceの新しい機能が使えますね.
http://blogs.adobe.com/akamijo/archives/2008/07/ …
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/ …
重ねてのご回答,ありがとうございます。
FileReferenceクラスに,そんな昨日が追加されたとは驚きです!
早速リンク先を拝見して,使えそうだと直感いたしました。特に,開くと同時にユーザーが読み込みファイルの指定をできるようにしたいと考えていたので,一石二鳥です。
ゆくゆくはAIRに移行するとして,まずは練習ですのでこちらの方法でトライしてみたいと思います。また,この機能が欲しいので,がんばってCS4かCS5を導入します。
今回は,まさに「待てば海路の日和あり」でした。ありがとうございました。
No.2
- 回答日時:
ご回答ありがとうございます。
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ファイルに体重が保存される、と
いうことになりますが….
大変詳しくご回答いただき、ありがとうございます。
やはりFlash単体でファイル操作はできないのですね。
また、SharedObjectには容量の制限をはじめ、数々の制約があるのですね…
あまり大量のデータを扱えないとなると、
後々動かなくなる危険性があるということですから、少し心配です。
ですが、まずはお教えいただいた方法で一度作ってみて、
それから問題点が出てくれば、それが解決できなかったときに
また質問させていただければと思います。
もうしばらくこのまま締め切らずに置かせていただきますが、
ご回答に不満があるわけではございませんので、悪しからずご容赦下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- ゴルフ ショットナビクレスト ゴルフ場データ更新について 2 2023/01/01 10:34
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- その他(クラウドサービス・オンラインストレージ) VPN通信に遜色ないクラウドサービスはありますか? 4 2022/08/05 16:19
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】マクロの入ったファイル...
-
Emacsで保存ができない
-
エクセルでファイルを閉じるボ...
-
リストボックスの保存方法を教...
-
Tomcat+Struts1.3+Eclipseにて...
-
HTMLでアンカーをはりPowerPoin...
-
JavaScript でファイル保存を行...
-
VB 2005 色データの保存、読出...
-
個別に違う添付ファイルを付け...
-
e-taxで送信ファイルの拡張子が...
-
サポートされたファイル形式お...
-
エアコンの冷媒 R410Aの重...
-
PDFファイルの倍率を変えて保存...
-
ビデオファイルのプロパティの...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
スマホでtxtファイルを編集する...
-
GIMP separate+プラグイン クラ...
-
VisualBasicとswfファイル
-
EXCELマクロでのtifファイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】マクロの入ったファイル...
-
エクセルでファイルを閉じるボ...
-
VBSでファイルを指定のフォルダ...
-
HTMLでアンカーをはりPowerPoin...
-
リストボックスの保存方法を教...
-
python文字化けエラーが発生し...
-
WebBrowserにHTMLテキストを読...
-
Emacsで保存ができない
-
JavaScript でファイル保存を行...
-
HTMLファイルと、MHTファイルを...
-
ダブルクォーテーション付きの...
-
VB 2005 色データの保存、読出...
-
VBAでAPIを利用する
-
EXCEL/VBAでWORDファイル名の先...
-
Android Studio 難しい
-
Visual studio2022についての質...
-
オートシェイプを画像ファイル...
-
VBScript ワードunicodeテキス...
-
swfを直接DLさせる方法について
-
EZWEBの着FLASHでmmf...
おすすめ情報