• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:trace();情報を外部出力したい)

ActionScript2.0で外部出力したい情報を取得する方法

このQ&Aのポイント
  • Flash Player10を使用してActionScript2.0でデータを作成している際に、実機で動作が停止する現象が起きています。停止箇所を特定するために、trace();を使用して情報を出力していますが、exeファイルを実行する度に外部出力する方法はありますか?
  • exeファイルを実行する度に、FLASH上の出力パネルに書きだされる情報を取得する方法を知りたいです。trace();を使用して処理の進行状況を把握するために、実行回数ごとの出力情報が必要です。
  • 上記の現象が起きた際の別のログの取得方法も知りたいです。停止箇所を特定するために、他のログ情報を取得する方法があれば教えてください。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 PC の外部に何かを保存するのでしたら Windowsプロジェクター(.exe) を選ぶこと自体が間違っていますね。 SWF(HTML や HTA に貼り付けた SWF) でしたら, まだ JavaScript や VBScript 経由で何らかのファイルが書き出せたり通信できますが Windowsプロジェクター(.exe)でしたら八方塞がりですね。 (セキュリティ関係でその辺は塞がれまくってます。) 一般的には唯一(?)外部に何かを残せるとすれば 「SharedObject」 くらいでしょうか。 http://www.google.co.jp/search?hl=ja&q=SharedObject いわゆるクッキーですから その居場所やデータの仕様は自己研究してみてください。 または,超マニアックですが EXEのあるフォルダ内に「fscommand」という名のフォルダを作って そのフォルダ内にFlash製とは別のEXEを仕込んでおいて何かを保存させるとか(通信はほとんど不可かも)。。。 http://www.google.co.jp/search?hl=ja&q=fscommand+%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80 この辺も自己研究あるのみです。 もしくは EXE などというものを捨てて,根本を変えて「AIR」です。

yaku-ima
質問者

お礼

何度も丁寧な回答をありがとうございました。 やはりexeということが邪魔をしているようですね。 残念ながら今回は様々な制約からexe以外のものにすることができません。 ただ最終的にtrace("◯◯");の書き出しが必要なのではなく、現時点で起っている問題の糸口を見つける為に、それを利用できればという状況でしたので、他の方法で探ってみます。 いただいた回答は全てとても参考になる情報でした。 ありがとうございました。

その他の回答 (2)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#2です。 度々すみません。 #2の冒頭の文章が変でした。 > PC の外部に何かを保存するのでしたら ↑これでは 「パソコンの外部に何かのデータを保存するのでしたら…」という意味になってしまいますね。 そうではなくて 「EXEの外部であるPCに何かのデータを保存するのでしたら…」という意味です。 Windowsプロジェクター(.exe)というのは, 結局 スタンドアローン版 の Flash Player のことです。 スタンドアローン版 の Flash Player(EXE) に SWF を埋め込んだ形で提供するのがWindowsプロジェクター(.exe)です。 スタンドアローン版 の Flash Playerから PC に何かを保存したりすることは ウィルスの配布やPCの破壊などにつながるので, ことごとくそういう行為(ファイルを保存する行為)はできないようにしてあります。

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

複雑に考えすぎていませんか? 普通は単純にテキストフィールドを作成して そのテキストフィールドに「○○」を表示させますよ。 テキストフィールドを用意するのが面倒でしたら 次のようにするとか。。。 //------------------------------------------------------- //関数「myTrace」の定義(引数文字列str):戻り値なし function myTrace(str:String):Void { //もし「trace_txt」が存在しなければ if (trace_txt == undefined) { //テキストフィールド「trace_txt」を作成 createTextField("trace_txt", getNextHighestDepth(), 10, 10, 0, 0); } trace_txt.border = true; trace_txt.autoSize = "left"; trace_txt.text += str+"\n"; } myTrace("○○"); //------------------------------------------------------- 上記「myTrace("○○");」を随時行いたいのでしたら myTrace("○○"); の部分を this.onEnterFrame = function() { myTrace("○○"); }; のように変更しても良いと思います(trace内容が見える範囲で)。

yaku-ima
質問者

補足

回答ありがとうございます。 質問内容が曖昧であったため申し訳ありません。 この方法では画面上に表示されてしまうかと思うのですが、そうではなく外部のテキストファイルなどにtrace("◯◯");の内容を出力できないかと考えております。 (ログを出力するイメージです) 本来なら書かれている方法で問題ないのですが、諸事情から画面上にtrace("◯◯");の内容は表示できない状況ですので、裏でどこまでスクリプトが実行されているのか確認したいと思っております。 該当データには要所要所にtrace("◯◯");(例えば「◯◯読み込み完了」など)を仕込んでおり、この部分だけでも実行分を書き出せれば、どこで止まっているか確認できると考えた為、このような質問をさせていただきました。 分かりづらい表現でお手数をお掛けしてしまい申し訳ありません。

関連するQ&A

専門家に質問してみよう