• ベストアンサー
※ 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

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

    FLASHでは、 loadMovie(" .swf", ); で外部ムービーを任意の場所に読み込むことができます。この方法を使用して、ローカルにあるプロジェクタ(exe)にネット上に用意したFLASHファイル(swf)を読み込んでいますが、この時、下記のようなことは可能でしょうか。  1. 読み込まれるFLASHファイル(swf)は10フレーム用意されているが、単体で再生すると5フレーム目にあるgotoAndstop(1)というフレームアクションで、6フレーム以降は再生できない。しかし、プロジェクタ(exe)に読み込むことによって6フレーム目から再生できる。  2. 読み込まれたFLASHファイル(swf)からプロジェクタ(exe)のフレームをコントロールする。 使用ソフトは、FLASHMXです。よろしくお願いします。

    • ベストアンサー
    • Flash
  • トレース定義の保存について

    SQL Server Profilerでのトレースを、exec sp_trace_createを用いてトレース定義をし、 トレースログを取得することを考えているのですが、 sp_trace_createで作成したトレース定義が、 SQLSERVERのインスタンスを再起動すると削除されてしまいます。 トレース定義というのは、このように再起動すると削除されてしまうものなのでしょうか。 希望としては、再起動をしても削除されることなく、インスタンス起動停止のたびに、 トレースも同様に、以下のコマンドで停止・開始を行っていきたいと考えています。 開始:exec sp_trace_status @TRACEID, 1 停止:exec sp_trace_status @TRACEID, 0 ※仕様上、削除されてしまうものかどうかをいくつかのサイトを検索しましたが、 見つからず、ここで質問させていただいております。 また、@TRACEID=1に(インストール時から登録されている既定の?)トレース定義は 再起動しても削除されないため、トレース定義を永続化させることができるのでは、とも思っています。 何卒よろしくお願いいたします。 【環境】 Windows Server 2008 R2 x64 Standard Edition SQL Server 2008 SP2 Enterprise Edition (x64)

  • アプリケーションからのSQLトレース出力について

    java(servlet)で作成したアプリケーションのSQLトレースを取得したいのですが、トレースファイルに出力されません。 ご教授お願いします。 【環境】 ・oracle 9i(10gでも確認しましたが同様の結果でした) ・java(servlet)の実行環境はwindows server 2003 【設定、操作方法】 ●SQLPLUSより 1.ALTER SESSION SET sql_trace = true; 2.timed_statistics は true になっている事を確認 ●ブラウザより 3.アプリケーションを動かす(内部でSQLが発行される操作を行う) ●コマンドプロンプトより 4.tkprof より出力内容を確認 出力結果にアプリケーションで発行しているSQLの解析情報が全く入っていません。 上記の操作に問題があるのでしょうか?それとも何か他に設定が必要なのでしょうか? よろしくお願いします。

  • Perlで取得した情報をFlashへ渡す

    Perlで取得した情報をFlashのActionScript 3.0で受けたいのですがどの様にすればいいのでしょうか? どなたかよろしくお願いします。

  • FLASHからテキストデータを出力させる

    現在、ActionScriptで外部XMLデータを呼び出し、編集を行い、その内容をファイルとして出力させる、という事をやろうとしているのですが、 Flashからテキストファイル等の出力は不可能だという事を聞き (ネット上で調査も結構したのですが、やっぱり不可能なのでしょうか…??) それならActionScriptから何か別のスクリプトを呼び出し、データを渡し、出力させる方法が適切かなと思っています。 現在、JavaScriptを使おうと思っているのですが、 外部のスクリプトの関数をActionScriptから呼び出す事は可能であるかを調べており、なかなか方法が載ってるサイトが見つからず困っています。 そもそも可能なのでしょうか? ちなみにこのFLASHは ・WEB環境がないところで実行しなければならない ・HTMLからではなくswf単体で動作する という条件があります。 不可能であれば、スクリプトである必要もなく、 ActionScriptがクライアントの環境でファイルを生成出来れば何でもいいと思っています。 何か良い方法があれば回答宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 外部SWFの制御、プロパティにアクセスについて

    制作環境:Flash CS5、ActionScript3 外部SWFのプロパティ、フレームの制御について悩んでいます。 まず、外部SWFを読み込むSWF:parent.swf、読み込まれるSWF:child.swfがあるとします。 parent.swfはタイムライン1フレームだけで以下を記述しています。 var swfUrlReq:URLRequest=new URLRequest("./child.swf"); var fileLoader:Loader=new Loader(); var mc:MovieClip=new MovieClip(); fileLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeSwf); fileLoader.load(swfUrlReq); function completeSwf(eventObject:Event):void { mc=fileLoader.content as MovieClip; mc.stop(); addChild(mc); trace(mc.word); } child.swfでは総フレーム55くらいで、添付の画像のように左から右に移動して終わるだけのムービーです。1フレーム目にはvar word:String="読めた!!"; 最後の55フレームにはstop();を記述しています。 でいざパブリッシュしてみるとmc.stop();が効かず勝手にムービーが再生され、おまけに以下の「Error #1069: _01_fla.MainTimeline__Preloader__ にプロパティ word が見つからず、デフォルト値もありません。」のエラーでてしまいます。 どうやったらフレームを制御でき、child.swf内部に設定した変数wordを読めるでしょうか?ネットでいろいろ検索引っかかったのですがどれも解決にはなりませんでした、どなたか教えてください、よろしくお願いします。

    • ベストアンサー
    • Flash
  • インスタンス名の変更mcどうしのhittest

    お世話になります。Flash,actionscriptの初心者です。 現在actionscript2.0でちょっとしたFlashコンテンツを作っているのですが、解決できない ことがあり、ぜひお知恵を拝借できればと思います。 詳しくは添付図をご覧いただきたいのですが、 A1_mcとB1_mcのムービークリップをhittestで衝突判定させ、 B1_mcは見えないようにし、 A1_mcはgotoAndPlay(2)で2フレーム目にします(☆の絵)。 同時にthis._name="C1_mc"でインスタンス名を変更しました。 (ここまでは大丈夫で、trace(this._name)でも変更が確認できる。) 同じようにA2、B2、C2も設定しました。 そして、姿(○⇒☆)とインスタンス名(A⇒C)と変わった C1_mcとC2_mcをhittestで衝突判定させてD_mc(■)を見えるようにしたいのですが、 何も起きず、hittestが発動していないのではと思ってしまいます。 説明がわかりにくいと思うのですが、インスタンス名を変更した物どうしのhittestを うまく発動させるにはどうしたらよいか、教えていただきたいのです。 にわか知識のためFlashやactionscriptの根本的な問題を理解できてなさそうです・・・。 ちなみに何がやりたいかというと、○と○、○と☆ではお互いに反応しないが、 ○と◇が合体して☆になったもの同士(☆と☆)が接触すると、反応して■が出現する・・・ そんなFlashを作りたいのです。 自分の現状のやり方以外でこれが実現できるのなら、それでも大歓迎です。 長文になりましたが、ぜひともよろしくお願いいたします。 <参考・・自分の組んだAS> A1_mc.onEnterFrame = function() { if (this.hitTest(_root.B1_mc))     { _root.B1_mc.gotoAndPlay(2); //2フレーム目(空のキーフレーム)にとび、B1を消す this.gotoAndPlay(2);  //○⇒☆(2フレーム目)に姿を変える this._name="C1_mc"; //インスタンス名をA1_mcからC1_mcに変える     trace(this._name); //インスタンス名の変更を確認する。 delete this.onEnterFrame;     } else{ } }; A2_mc.onEnterFrame = function() { if (this.hitTest(_root.B2_mc))     { _root.B2_mc.gotoAndPlay(2); //2フレーム目(空のキーフレーム)にとび、B1を消す this.gotoAndPlay(2);  //○⇒☆(2フレーム目)に姿を変える this._name="C2_mc"; //インスタンス名をA2_mcからC2_mcに変える     trace(this._name); //インスタンス名の変更を確認する。 delete this.onEnterFrame;     } else{ } }; C1_mc.onEnterFrame = function() { if (this.hitTest(_root.C2_mc))     {     this.visible = false ; //姿を消す _root.C1_mc.visible = false; _root.D_mc.gotoAndPlay(2); //D_mcの出現(D_mcの1フレーム目は透明で見えなくしている。2フレーム目からアニメーションさせたいのでvisibleは使わない)     delete this.onEnterFrame; }   else{ } };

    • ベストアンサー
    • Flash
  • FLASHで外部swfファイルを読み込み表示するには

    FLASHで外部swfファイルを読み込み表示できるということを知り、下記の方法で行ったのですがうまくいきません。どのような方法をとれば、うまくいくでしょうか。使用ソフトは、FLASHMXです。よろしくお願いします。 1. 読み込むswfファイル (2.swf) を用意する。 2. 読み込んで再生するためのプロジェクタ (1.exe) を用意する。 3. "1.exe"と"2.swf"を同じ階層に保存する。 ※"1.exe"の作成方法  ・使用するレイヤーは、起動したときに用意されている1つだけで、フレーム1に"loadMovie"を埋め込み、URLには"2.swf"、場所はレベルで"1"を選択する。  ・"1.fla"と名前を付けて保存し、プロジェクタ"1.exe"としてパブリッシュする。 なお、"1.exe"と"2.swf"のステージサイズ及びフレームレートは同じに設定しています。

  • 【フラッシュ】外部テキストの読み込み

    よろしくお願いします。 いま、作っているフラッシュで外部テキスト(中身はサーバ名,www.~.com)を読み込んで それを参照してサーバからデータを取得するというスクリプトを作っています。 それで、めでたく完成したのですが、ローカル環境(swf,txtともにローカルマシンにある)で 確認するとうまく動くのに、サーバにアップしてみるとうまくいきません。 失敗の原因として、 1)そもそもtxtの読み込みがうまくいっていない。 2)読み込んでるが、それをswf内部でうまく参照できていない。 の二つがあると考えて、読み込んだデータを表示するテキストフィールドを用意して確認したのですが、 ちゃんと読み込んでいるのです。 すると、後はその取得データを参照するスクリプトがおかしいということになりますが、 そちらはローカル、サーバ上ともにまったく同じです。 いったい何が原因でしょう。 フラッシュの構造的には ■1フレーム目  フレームアクション:stop(); //いったん停止してデータを読み込む var theSvr;//サーバ名を格納し実際に参照する変数  配置MC:内部にsvrNameという変数を持つ、データ読み込み用のMC      onClipEvent(load){ this.loadVariables("sv.txt"); }      onClipEvent(enterFrame){ _root.theSvr = this.svrName; _root.gotoAndPlay(2);//フレームアクションのストップを解除して再生 }       ■2フレーム目以降の読み込みデータを使ったアクション  getURL(_root.theSvr);//基本的に、getURLに使う程度です。。 わかりづらいかもしれませんが、よろしくお願いします。

  • ムービークリップを表示するボタン

    ボタンを押すとMC1を指定位置に表示し、 MC1内のフレーム60まで再生する。 ボタンをもう1度押すとMC1内のフレーム60からフレーム80までを再生し、MCを閉じる というものを作りたいのですが どのようにactionscriptを組めば良いでしょうか。 とても基本的な部分だとは思うのですが検索を掛けても思う物が出てこなかったので、宜しくお願いします。

    • ベストアンサー
    • Flash