A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
メモ帳に保存する という言葉は普通は通じませんよ。
メモ帳でも開けるような,
テキストファイルに保存する のですよね。
とりあえずの大前提として,
Flash Player の能力としてはそういうものはありませんから,
ActionScript だけでいくら頑張っても無理です。
他言語や他のアプリケーションを使用しなければなりません。
また,ローカルにデータを保存する場合は,
OSなどの環境によって言語や保存の仕方が変わります。
そういうわけで,Windows(XP)限定でなおかつ,オフラインでの使用限定で回答します。
さらに,
SWF 単体を スタンドアローンFlashPlayer で起動させたり,
パブリッシュしたプロジェクタファイル(EXE) 単体の起動では,
上記の通り基本的にそういうことは普通は不可能ですから,
HTML(またはHTA)に貼り付けた SWF をブラウザなどで閲覧した状態から保存する方法を取ります。
言語的に流れを簡単に書けば,
ActionScript
→ HTML
→ JavaScript
→ WSH
→ブラウザがテキストファイルを保存
という連携で考えます。
JavaScript は VBScript でもかまいませんが,今回の場合は JavaScript を経由する方法を書きます。
まず,SWF ファイルを貼り付ける HTML(HTA) のソースコードを次のようにします。
/////////////////////////////////////////////////////////////////
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>テキストファイル保存テスト</title>
<script type="text/javascript">
<!--
function saveData(user,mydate,point){
var FSO, myfile;
FSO = new ActiveXObject("Scripting.FileSystemObject");
myfile = FSO.OpenTextFile("c:\\FlashGame.txt", 8, true);
myfile.WriteLine(user +" "+mydate+" "+point);
myfile.Close();
}
// -->
</script>
</head>
<body>
~★ここに SWF を貼り付けるタグを書く★~
</body>
</html>
/////////////////////////////////////////////////////////////////
一応,JavaScript で saveData() というユーザ定義関数を定義しています。
JavaScript では WSH を使用して,
「ドライブC」の直下に「FlashGame.txt」を新規で保存するか,
保存してあった場合,追加でデータを書き加えるというものを実行するようにしています。
Flash ですが,
ステージ上に,
「user_name」というインスタンス名(変数名ではありません)のテキスト入力のテキストフィールドと,
「user_point」というインスタンスのテキスト入力のテキストフィールドと,
ボタンを1つ作成します。
テキスト入力のテキストフィールドは2つとも周りの囲い枠(ボーダー)があった方が良いと思います。
文字の色も黒など見える色に設定してください。
そして用意したボタンには次のようなスクリプトを書きます。
/////////////////////////////////////////////////////////////////
on (release) {
// 変数 un に user_name の値を代入
un = _root.user_name.text;
// 変数 up に user_point の値を代入
up = _root.user_point.text;
// now という Dateオブジェクトの作成
now = new Date();
// 変数 y に年を取得
y = now.getFullYear();
// 変数 m に月を取得(+1)
m = now.getMonth()+1;
// m の桁合わせ
m = ("0"+m).substr(-2, 2);
// 変数 d に日を取得
d = now.getDate();
// d の桁合わせ
d = ("0"+d).substr(-2, 2);
// 日付文字列 md の作成
md = y+"/"+m+"/"+d;
// JavaScript の saveData(名前,日付,得点) を実行
getURL("javascript:saveData("+"'"+un+"','"+md+"','"+up+"点'"+");");
}
/////////////////////////////////////////////////////////////////
これで,SWFをパブリッシュして,
その SWF を上で用意した HTMLに貼り付け,ブラウザで閲覧し,
2つのテキストフィールドに何かを記入し,
ボタンをクリックすると,
「このページの ActiveX コントロールは、安全でない可能性が…」という「警告」が出ますが,
「はい(Y)」をクリックすると,
「ドライブC」の直下に「FlashGame.txt」が保存されると思います。
セキュリティの関係で「はい(Y)」をクリックしても何も保存されない可能性はあります。
わかっていらっしゃるとは思いますが,
保存されたとしても,「警告」が出るのは当たり前だと思ってください。
上の場合は,無害なテキストファイルが保存されるだけですが,
場合によっては有害なプログラムを任意の場所に保存することも可能です。
ネット上では,こういう無害なものでも,使うことはご法度です。
無害であっても,大切なデータに何か違うファイルを上書き保存してしまう可能性も考えられます。
FlashPlayer がそんなことをできない理由もそこにあります。
「警告」を出したくない場合は,
HTML の拡張子を .hta に変えれば普通うまく行くのですが,
なぜか私の環境では拡張子を変えるとまったく何も保存されなくなりました。
この回答の内容の大半は,Flash とは関係がない話です。
私は,次のページあたりを参考にして作成しました。
OpenTextFile メソッド
http://msdn.microsoft.com/library/ja/default.asp …
第10回 WSHスクリプトからのファイル操作(1)
http://www.atmarkit.co.jp/fwin2k/operation/wsh10 …
もっと詳細な説明が必要である場合や,カスタマイズしたい場合などは,
WSH(Windows Script Host) のカテゴリ(そんなカテゴリありましたっけ?) などの方が,良い回答が得られると思います。
(または,「WSH Flash」 などと Google や Yahoo! で検索してみるとか。)
Flash はローカルアプリケーションに使うことには向いていません。
テキストファイルを保存するだけでも,他言語を利用しないとなりませんし,複雑で,不確実です。
確実にテキストファイルを保存したいのでしたら,
Flashで選択可能なダイナミックテキスト上に,
たろう 2007/07/01 43点
というようなデータを表示させて,
手動でメモ帳にコピペして,メモ帳でテキストファイルを保存することです。
もしくは,
最初からテキストファイルを保存するようなゲーム を Flash で作ることをやめるかですね。
とにかく,ローカルアプリケーションには向いていませんね(悲しいことに)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- ノートパソコン 「データエラー(CRCエラー)」対応に付いて 15 2022/12/08 09:01
- 電子書籍 WIN10で誤ってメモ帳タッチしてしまった 2 2022/12/29 21:02
- iPhone(アイフォーン) iPhoneのメモ帳を使ってますが、突然全然違うところに画面がジャンプします。なんですか ?この仕様 1 2022/12/19 09:19
- ニコニコ動画 pc詳しい人カモン 1 2022/05/14 15:33
- ゲーム steamのクラウド保存について 1 2023/04/18 23:49
- フリーソフト AutoHotKeyは別の独立したファイルで 動作させる方法はないのでしょうか 1 2022/09/04 13:14
- レトロゲーム 小学生の頃にやっていた未クリアのゲームをプレイしたい 3 2023/05/07 23:37
- HTML・CSS メモ帳の段落の揃え方 2 2023/08/01 08:15
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】マクロの入ったファイル...
-
エクセルでファイルを閉じるボ...
-
JavaScript でファイル保存を行...
-
eclipseの保管が押せない!
-
PDFファイルの倍率を変えて保存...
-
個別に違う添付ファイルを付け...
-
e-taxで送信ファイルの拡張子が...
-
スマホでtxtファイルを編集する...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
エクセルで「特定の文字を含む...
-
拡張子「.IDJ」を、windo...
-
VBA:カウンターの i の値が開放...
-
サポートされたファイル形式お...
-
リストビューで選択行の背景を...
-
TextBoxにフォーカスを与えると...
-
alert で文字の色を変えたい
-
指定したフォルダーを開いてフ...
-
stdio.hの中身
-
シェイプ上で矢印キー(右、左...
-
PC内で速度を遅くした音源をCD...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】マクロの入ったファイル...
-
VBSでファイルを指定のフォルダ...
-
Emacsで保存ができない
-
エクセルでファイルを閉じるボ...
-
HTMLでアンカーをはりPowerPoin...
-
リストボックスの保存方法を教...
-
WebBrowserにHTMLテキストを読...
-
eclipseの保管が押せない!
-
Android Studio 難しい
-
EXCEL/VBAでWORDファイル名の先...
-
python文字化けエラーが発生し...
-
RTFテキストの保存
-
HTMLファイルと、MHTファイルを...
-
fireworksでjpeg保存可?初心者...
-
VB 2005 色データの保存、読出...
-
VBからPDFファイルを開き方で質問
-
ダブルクォーテーション付きの...
-
UWSCでエクセルファイルのみを...
-
PictureControlのハンドルをCIm...
-
Visual studio2022についての質...
おすすめ情報