SharedObjectについて

このQ&Aのポイント
  • ローカルフォルダ内の特定のファイルを使用して、FLASHMXのSharedObject機能を活用する方法について教えてください。
  • 使用ソフトはFLASHMXで、特定のファイルをローカルのMy Documentsフォルダに用意し、SharedObjectを使用して操作することができます。
  • 具体的な操作方法として、ボタンアクションによって描画や保存、消去などの機能を実現することができます。
回答を見る
  • ベストアンサー

SharedObjectについて

特定のファイルなど(※1)を用意し、SharedObjectという機能を使用して下記のこと(※2)を行うのは可能でしょうか。 また、可能な場合、どのような方法をとればよろしいでしょうか。 使用ソフトは、FLASHMXです。よろしくお願いします。 ※1 ローカルのMy Documentsフォルダの中にpaint1.exe(※2)とpaintフォルダ。 ※2 paint1.exe  レイヤー9 フレーム2 ムービークリップ(インスタンス名:canvas2)  レイヤー8 フレーム1・2 ムービークリップ(インスタンス名:canvas1) paintフォルダの中にpaint2.solがあれば、読み込む。  レイヤー7 フレーム2 ボタン(インスタンス名:なし) ボタンアクションによってcanvas2に描画した全てのものを消去する。  レイヤー6 フレーム2 ボタン(インスタンス名:なし) ボタンアクションによってcanvas1に読み込まれているものをcanvas2にコピーする。  レイヤー5 フレーム2 ボタン(インスタンス名:なし) ボタンアクションによってcanvas2に描画したものをpaintフォルダの中にpaint2.solとして保存し、同時にcanvas1に読み込む。  レイヤー4 フレーム2 ボタン(インスタンス名:なし) FLASHの消しゴムツールと同じようなもの。選択し、canvas2に描画したものの一部を消去する。  レイヤー3 フレーム2 ボタン(インスタンス名:なし) FLASHの鉛筆ツールと同じようなもの。選択し、canvas2に描画する。  レイヤー2 フレーム1 ボタン(インスタンス名:なし) ボタンアクションによってフレーム2に移動する。  レイヤー1 フレーム1・2 ムービークリップ(インスタンス名:なし)

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

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

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

たびたび,ご質問ありがとうございます。 と,私が言うのはすごく変ですが。 しようとされていることは,漠然とは理解できます。 すごく無謀なことというか,すみませんが悪く言うと邪道なことをされようとしていると思います。 それで,代替案などを考えてもみるのですが,代替案さえ思いつきません。 ---paint1.exeにsolファイルを読み込む--- EXEファイルがsolファイルを管理できるのかどうかがそもそもわかりません。 普通はSWFで使う物だと思いますし,実験してみても良いですが, これより下の方がかなり無謀だと思うので,実験もしてみていません。 このようなことを追求されたら,きっとこの方法のパイオニアになれると思います。 ---paintフォルダの中にpaint2.solがあれば、読み込む。--- My Documents\paint フォルダと言うことですよね。 読み込む前に,そんな自分が勝手に決めたところにsolファイルをSWF(EXE)からは保存できません。 手動では保存できますが,おそらく読み込まないと思います。 WindowsXPの場合, C:\Documents and Settings\ユーザ名\Application Data\Macromedia\Flash Player フォルダ内に決まっています。 その他のところに勝手に勝手なファイルを保存されたらいやでしょう。 例えば自分が入力フォームに入力した内容とかが他人にバレる可能性もありますし, Systemフォルダなど変な所に変な物を保存されたら,PCがうまく作動しなくなるかもしれません。 Flashの人気の理由は,アクティブにアニメーションが動くという部分もありますが,決してPCを侵害しないというところにあるのです。 その,セキュリティ性はバージョンアップを重なるごとに増して行っています。 そう言った意味で,FlashMXになって,Shared Objectという少々危険性があるものが生まれたことは奇跡的なことなのです。 将来的にも,勝手な場所にsolファイルを保存できるようになることは無理でしょう。 技術的な問題ではないです。セキュリティの問題です。 ---描画したものをpaintフォルダの中にpaint2.solとして保存し--- 保存する場所は別問題として, 描画したものと言うのはバイナリでしょうか? バイナリはできませんよ。要はJavaScriptでいうCookieのようなものです。 変数と値。つまりテキストデータしか保存できないと思った方が良いです。 http://www.macromedia.com/jp/support/flash/ts/documents/fl0277.html でも,以前,質問にあったのですが,参考になるかもしれない例があるにはあります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1455100 私がつまらない回答をしていますが,回答は参考になりません。 回答ではなく質問の方が参考になるかもしれません。

noname#24173
質問者

お礼

お返事ありがとうございます。 御回答のとおり、この質問内容のままで可能であれば、セキュリティの観点から問題がありますね。 以前、FLASH関連書籍を読み、その中で  1. 描画情報をXMLデータに変換しSharedObjectに保存することで、保存したXMLデータを読み込み、描画を再現するというサンプルがあったこと  2. SharedObject.getLocalの指定の仕方で、どこにでも保存先を指定できるとあったこと から質問させていただきましたが、.exeではなく.swf、また保存先を指定する場合はC:\Documents and Settings\Administrator\ApplicationData\Macromedia\Flash Player\localhostなどより下層階層にするという方法でもう少し考えてみたいと思います。 詳しく教えてくださりありがとうございました。

関連するQ&A

  • 日付と時刻の取得、ムービークリップの読み込みについて

    あるFLASHファイル(例えば、hizuketozikoku.swf)を用意します。(?)の部分にどのような記述をすれば、(?)のフレームアクションによってローカルマシンの常に新しい日付と時刻(*月*日*曜日*時*分*秒)を取得し、また取得した日付と時刻に対応するライブラリのムービークリップを指定する場所に読み込ませる(例えば、1月1日日曜日1時1分1秒の場合は、gatuに1gatu、nitiに1niti、youbiにnitiyoubi、ziに1zi、hunに1hun、byouに1byouを読み込ませる)ことができますか。 使用ソフトは、FLASHMXです。よろしくお願いします。 ※ hizuketozikoku.swf  シーン1   レイヤー7 フレーム1 インスタンス名:byou   レイヤー6 フレーム1 インスタンス名:hun   レイヤー5 フレーム1 インスタンス名:zi   レイヤー4 フレーム1 インスタンス名:youbi   レイヤー3 フレーム1 インスタンス名:niti   レイヤー2 フレーム1 インスタンス名:gatu   レイヤー1 フレーム1 フレームアクション(?)  ライブラリ   レイヤー1からレイヤー7のムービークリップ(例えば、シンボル1からシンボル7)   1月から12月のムービークリップ(例えば、1gatuから12gatu)   1日から31日のムービークリップ(例えば、1nitiから31niti)   日曜日から月曜日のムービークリップ(例えば、nitiyoubiからgetuyoubi)   1時から24時のムービークリップ(例えば、1ziから24zi)   1分から60分のムービークリップ(例えば、1hunから60hun)   1秒から60秒のムービークリップ(例えば、1byouから60byou)

    • ベストアンサー
    • Flash
  • loadMovieの読み込み中を表示しない

    Flash Mx 2004です。 ムービークリップにloadMovieで外部画像を表示し、その上にボタンをのせているのですが、画像が出るまでの間ボタンだけが表示されている状態になっています。画像とボタンを同時に表示するにはどうしたらいいのでしょうか?このムービークリップは5フレーム目にあります。 以下の2種類の方法をためしてみましたがうまくいきません。どちらの方法でもまた別の方法でもよいのでよろしくお願いします。 ●読み込み後のフレームへ移動 このムービークリップは別画像をクリックしたら表示されるようにしているので、その画像のアクションに on(release) { _root.gotoAndPlay(6); //5フレーム目の次を表示 } と記述したのですが、これだとなぜかloadMovieの読み込み画像が出ません。 ●最初から読み込んでおいて非表示にしておく ムービークリップを1フレームに配置し [レイヤー名またはインスタンス名]._visible=false; としたのですが非表示になりません。

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

    特定のファイル(※1)を用意した上で、下記のことを行うには、どのような方法をとればよろしいでしょうか。 kiso1.exeを開くことで、kiso1.exeのレイヤー2とレイヤー3にkiso2.swfを読み込み、kiso2.swfのボタンアクションによってnet1.swfを読み込む。net1.swfのボタンアクションによって同じネット上にあるFLASHファイルを読み込み、またそのFLASHファイルのボタンアクションによってnet1.swfを読み込む。これらのファイルの中でkiso.exeの以外のものは、他人に作成させることも考えており、kiso1.exeに読み込ませるFLASHファイルのファイル名のみkiso2.swfと同じにすれば、kiso2.swfの設定(loadMovieのURLを変えるなど)によって読み込むFLASHファイルが管理外のネット上にあっても同様のことが行えるようにする。なお、kiso1.exeのレイヤー3に直接net1.swfを読み込ませることはできました。 使用ソフトは、FLASHMXです。よろしくお願いします。 ※1 ローカルのMy Documentsフォルダの中にkiso1.exe(※2)とkisoフォルダ。kisoフォルダの中にkiso2.swf(※3)。管理するネット上にnet1.swf (※4)。 ※2 下のレイヤーからレイヤー1、レイヤー2、レイヤー3。レイヤー1は、名前がシンボル1のムービークリップ。レイヤー2は、名前がシンボル2で、インスタンス名がusiroのムービークリップ。レイヤー3は、名前がシンボル3で、インスタンス名がmaeのムービークリップ。 ※3 シンボルにインスタンス名がなく、レイヤー3のシンボルがボタンであること意外、kiso1.exeと同じ。 ※4 レイヤーが2までしかなく、レイヤー2のシンボルがボタンであること意外、kiso2.swfと同じ。

    • ベストアンサー
    • Flash
  • 読み込まれた外部ムービーからのコントロールについて

    下記のファイルなど(※)を用意します。 (?)の部分にどのような記述をすれば、(?)のボタンアクションによってyomikomu.exeのシーン2フレーム1を表示させられますか。 使用ソフトは、FLASHMXです。よろしくお願いします。 ※ My Documentsフォルダ  yomikomu.exe   シーン1    レイヤー2 フレーム1・15 インスタンス名:yomikomareru    レイヤー1 フレーム15 フレームアクションgotoAndStop("シーン 1", 10)    レイヤー1 フレーム6 フレームアクション_root.yomikomareru.gotoAndPlay(6)    レイヤー1 フレーム1 フレームアクションloadMovie("/gaibu/yomikomareru.swf", "yomikomareru")   シーン2    レイヤー3 フレーム1・15    レイヤー2 フレーム1・15 インスタンス名:yomikomareru    レイヤー1 フレーム15 フレームアクションgotoAndStop("シーン 2", 12)    レイヤー1 フレーム11 フレームアクション_root.yomikomareru.gotoAndPlay(11)    レイヤー1 フレーム1 フレームアクションloadMovie("/gaibu/yomikomareru.swf", "yomikomareru")  gaibuフォルダ   yomikomareru.swf    シーン1     レイヤー2 フレーム11・15     レイヤー2 フレーム6・10 ボタンアクション(?)     レイヤー2 フレーム1・5     レイヤー1 フレーム15 フレームアクションgotoAndPlay("シーン 1", 11)     レイヤー1 フレーム10 フレームアクションgotoAndPlay("シーン 1", 6)     レイヤー1 フレーム5 フレームアクションgotoAndPlay("シーン 1", 1)     レイヤー1 フレーム1

    • ベストアンサー
    • Flash
  • FlashCS4 Professional

    Flash初心者です。 FlashCS4 Professionalを使用しています。 ムービークリップを再生後、次のフレームに自動的に移動させたいのですが、調べても良く分かりません・・・ どういうアクションを書けばいいのでしょうか? ラベル名 : ムービークリップを入れてあるフレーム「frame01」、次のフレーム「frame02」 ムービークリップのインスタンス名:「clip01」 として設定してあります。 ご指導よろしくお願い致しますm(_ _)m

  • ムービークリップ内の変数について

    ムービークリップ内で扱った変数をルートで取り扱う時は _root.ムービークリップインスタンス名.変数名 このような形で取り扱うのでしょうか?。 また、ルートの1フレーム目のフレームアクションで変数を定義していた場合は、単に変数名だけで取り扱えるのでしょうか?。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • マウスオーバーで全ムービークリップ停止

    上手く説明出来ないのですが、 ムービークリップのメニューを作ろうとしています。 マウスオーバーで全部のムービーが止まる様にしたくて、 一つのムービークリップに全部のムービークリップのメニューをまとめ、選択すると ーーーーーーーーーーーーーーーーここから シーン=シーン1,レイヤー=menu,フレーム マウスイベントはボタンインスタンスでのみ使用できます。 シーン=シーン1,レイヤー=menu,フレーム マウスイベントはボタンインスタンスでのみ使用できます。 ーーーーーーーーーーーーーーーーここまで とエラーになってしまいます。 だからといってメニュー一つ一つに on(rollOver){ stop(); } on(rollOver){ play(); } を記述しても、マウスオーバーしているメニューだけが止まって、 他のメニューは動いてぐちゃぐちゃになってしまいます。 ひとつのメニューをマウスオーバーするだけで他全部のムービークリップも停止、 マウスをはずすと同じ所から動きだす事って出来ますか? いい方法がありましたら教えて下さい。

  • Flash ステージに初期配置したMCがnull

    FlashPro CS5で as3の勉強をしています。 メインのタイムラインにマスク用のレイヤーを作成し、その2フレーム目にムービークリップを配置してインスタンス名を付けました。 ところが、ドキュメントクラスオブジェクトからこのマスク用のインスタンスを参照したところ、nullが返って来てしまいました。 これはどういった仕組みになっているのでしょうか? 2フレーム目で初めてインスタンスが生成されるのでしょうか? 再び1フレーム目に戻ってきた時にはどうなっているのでしょうか?

    • ベストアンサー
    • Flash
  • 関数にカウント変数を随時代入したいのですが・・

    インスタンス名「typ1」から「typ17」までの連番のムービークリップのボタンがステージに配置されている状態でフレームアクション for (i = 1; i < 18; i++) { this["typ" + i].onRelease = function () { trace(i); xChangeSelType (i); }; } を行い、プレビューでボタンを押すときちんと動作しませんでした。 ためしにtraceアクションで何が代入されているか見ると一律「18」が代入されていました。 typ1のムービークリップをクリックしたときは xChangeSelType(1); typ9のムービークリップをクリックしたときは xChangeSelTyoe(9); を動作させたいのですが↑のコードをどう書き換えればいいでしょうか? ボタンが多いのでできればスクリプトでなんとかしたいのですが・・。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • swapDepthsについて

    いつもありがとうございます。ミニゲームを作っていてswapDepthsで困っています。衝突の間、ムービークリップを再前面に持って来て、そうでない時は障害物の後ろにしたいのですが、障害物のムービークリップにswapDepthsを入れ、メインムービークリップを動作させるボタンにも起き上がった時にレイヤーを入れ替えるswapDepthsをいれましたが、深度の数字で指定するとリプレイした時に新しくできたレイヤーが残ってしまいます。ムービークリップのインスタンス名の指定では、ボタンを押すたびに変わってしまいます。一度、深度を指定して移動したレイヤーを元に戻すやり方はないでしょうか?深度の数字の求め方もよく、わかりません。

    • ベストアンサー
    • Flash

専門家に質問してみよう