• 締切済み

Flashで作ったゲームの点数などをメモ帳に保存するには

Flashで作った簡単なゲームで、プレイヤーの名前・点数・ゲームを開始した日時などをゲーム終了時にメモ帳に書き出し上書き保存していくというのは可能でしょうか?1台のXPのパソコンでオフラインでの使用です。 メモ帳に↓こんな感じに自動的に上書き保存したいです。 たろう 2007/07/01 43点 はなこ 2007/07/04 32点

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

みんなの回答

noname#35109
noname#35109
回答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?url=/library/ja/script56/html/jsmthopentextfile.asp 第10回 WSHスクリプトからのファイル操作(1) http://www.atmarkit.co.jp/fwin2k/operation/wsh10/wsh10_01.html もっと詳細な説明が必要である場合や,カスタマイズしたい場合などは, WSH(Windows Script Host) のカテゴリ(そんなカテゴリありましたっけ?) などの方が,良い回答が得られると思います。 (または,「WSH Flash」 などと Google や Yahoo! で検索してみるとか。) Flash はローカルアプリケーションに使うことには向いていません。 テキストファイルを保存するだけでも,他言語を利用しないとなりませんし,複雑で,不確実です。 確実にテキストファイルを保存したいのでしたら, Flashで選択可能なダイナミックテキスト上に,  たろう 2007/07/01 43点 というようなデータを表示させて, 手動でメモ帳にコピペして,メモ帳でテキストファイルを保存することです。 もしくは, 最初からテキストファイルを保存するようなゲーム を Flash で作ることをやめるかですね。 とにかく,ローカルアプリケーションには向いていませんね(悲しいことに)。  

dokinchanx
質問者

お礼

回答していただきありがとうございました。 大変参考になりました!

関連するQ&A

  • フラッシュが保存できない?

    SWF Cache Viewerというものを使って、 フラッシュのゲームをデスクトップに保存したのですが、インターネットに繋がないとそのゲームが出来ません。 オフラインで保存したファイルをウィンドウにドラッグして遊ぼうとすると画面がかわら無いままです。 でもオンラインだと普通に出来ます。 SWF Cache Viewerを起動すると右側に今まで見たフラッシュが表示されるのですが、 このゲームだけは右側の画面が真っ白で何も表示されません(オンラインでもオフラインでも) なぜでしょうか?またどうすればオフラインでも遊べるようになりますか?

  • フリーゲームの保存は違法ですか?

    ネットで海外のフラッシュゲームをフリーソフトを使い保存しオフラインでも遊べるようにするのは違法ですか? 個人利用目的のみです。よろしくお願いします。 投稿日時 - 2011-02-09 09:41:42

  • flashゲームをmicrosdに保存する方法

    ご覧いただきありがとうございます。 docomoのp-03bを使っています。 携帯で暇なときにflashゲームやろうと思い、pcでflashゲームをダウンロードしました。(画像扱い) そこから、microsdに移そうと思っているのですがmicrosdのどこへ保存するのかわかりません。 それか、flashゲームを携帯から画面メモで保存できるサイトあったら教えてください。 回答お願いします。

  • 携帯Flashゲームで設定の保存

    携帯向けにFlashでゲームを作成しています。 そこで設定やハイスコアを保存したいのですが、どうすればよいでしょうか? 携帯からswfにアクセスし、画面メモという形で保存しています。 これ以外で適当な保存方法があれば、そちらも教えてくださいm(__)m Flash Lite 3.0 向けに作成中です。 よろしくお願いします。

  • メモ帳の保存ミス

     メモ帳で作文中一旦中断して、これをマイドキュメントに保存しUSBフラッシュにバックアップしました。後日、新規にメモ帳で作文を続け完成したのでマイドキュメントに保存しました。そこで前述のUSBフラッシュのアイコンに移し「上書きしますか」「はい」で完成した文章としてバックアップできたものと思っていました。ところがUSBフラッシュのアイコンを開いてみてビックリ!追加した文章がありませんでした。更にマイドキュメントのアイコンからも追加した文章が消えてしまっていました。完全にバックアップの操作ミスをしたようです。 教えて頂きたいのはこの「消えた追加文章」を再現する方法です。それとも再現は不可能なのでしょうか?よろしくお願いします。(OSはXPです)

  • スマホでモバゲーのゲームFlashを保存する方法

    今度ガラケーからスマホ(Android 4.2)に機種変更しようと思ってます。 そこで、今携帯でできることを実現する方法を調べたところ、モバゲーのゲームFlashを保存する方法がよくわからなかったので、教えていただきたいのです。 (ガラケーだと画面メモを保存すればOKなのですが……) 【前提】 ・PCを使わず保存したい (イベント開始時に出先であることが多いため、PCで作業するのは不可能です) 【方法について】 1.モバゲのゲームFlashをそのまま保存する方法はありますでしょうか? 2.ない場合、スマホの画面をなめらかば動画で保存する方法はありますでしょうか?   (できれば、ルート取得なしがいいですが、無理なら有無は問いません) 3.それも無理なら連続でスクリーンショットをとる方法はありますでしょうか?   (その場合、撮影したスクリーンショットをつかって動画にしようと思います) なにとぞお力添え、お願いいたします。

  • どうしても保存したいFlash?ゲームがあります

    下記サイトのマインスイーパーを元ページが削除された後もプレイできるよう保存したいのですが、可能でしょうか? https://www.afsgames.com/flash/mine2.htm 当該ページにもFlashコンテンツであるようなことが記載されているのでおそらくFlashゲームだとは思うのですが、インターネットオプションからインターネット一時ファイルを表示してswhファイルを探してみたのですが、私が確認した限りでは見当たりませんでした(一応キャッシュ削除で掃除もしてみましたがやはり見つかりませんでした)。 ちなみに現在私が使用しているブラウザはIE11およびMicrosoft edgeです。 もう10年近くプレイしてきたマインスイーパーなので操作方法や演出面が変わってしまうとどうしても満足のいくプレイができないのです。標準のマインスイーパーと比較するとやや特殊な操作をするので他のマインスイーパーでは替えがききません。どうにかオフラインに保存する方法はないでしょうか。 よろしくお願いします。

  • Flashのゲームをオフラインで始める方法

    ネットで公開されているフラッシュゲーム(swf形式ファイル)をオフラインから起動するフリーソフトを探しているのですが、ムービープレーヤーしか探せず、それで起動したら誤作動を起こしてゲームをプレイできませんでした。 フリーでそういうソフトは無いのでしょうか? swf形式ファイルを直接開いてゲームができるソフトが理想なのですが…。

  • メモ帳の保存のときに、「エラー」がでる。

    初めまして、コンピューターは初心者なので質問する場所も間違えていたらごめんなさい。 ――えっと・・・私はよくメモ帳を使い文章を打っています。 そのときに、上書き保存or名前をつけて保存をすると、他のアプリケーションなど起動してもいないのに、「メモリ不足のためこの操作を実行できません。Windowsアプリケーションをいくつか終了して秋メモリ領域を増やしてから、再実行してください」というメッセージが、エラー音とともに出てくるのです。 なぜこうなるのか、わかる方がいれば教えてくだされば幸いです。 HPを更新するためにも使用しているので、毎回出てこられて困っています。 こんな言い方は悪いかもしれませんが、まだ中学生なので、できるだけ、理解しやすいようにお願いします。 身勝手なお願いですが、よろしくお願いします。

  • 最大ゲーム数は?

    こんばんは Yahooゲームで大富豪をやっています。 勝負をして、大富豪が+2点、富豪が+1点、貧民が+0点、大貧民には-1点の点数がつきます。 4人でゲームをして、誰かが6点以上獲得した時点でゲームは終了するとき、最大ゲーム数と、そのときの各自のスコアはそれぞれ何点ずつになりますか? ゲーム開始前の各自の持ち点は0点、点数に上限下限はありません。 よろしくお願いします。