メイン 迷える子羊の部屋【初心者専用】
ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| atsushi kurosawa | Åê¹ÆNo.41724 投稿日時: 2009-3-10 19:20 |
新米 ![]() ![]() 居住地: 東京都 投稿: 7
使用環境:
Windows XP pro Flash CS3 |
ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 制作環境:windows xp
ソフトウェア:Flash CS3 些細なことかも知れないのですが、ご教授いただけると幸いです。 コンストラクタでは trace("test");しかない、以下のようなドキュメントクラスを作ました。 ============================================================ package { import flash.display.MovieClip; import flash.events.Event; public class Main extends MovieClip { public function Main(){ trace("test"); } } } ============================================================ パブリッシュすると勿論、test と表示されるのですが、メインのタイムライン1フレーム目にて、 ============================================================ var m:Main=new Main(); ============================================================ と、インスタンスを生成しようとすると以下のようなエラーがでます。 ============================================================ Error: Error #2136: SWF ファイル ●●● には無効なデータが含まれています。 ============================================================ 原因がどうしても分からなく、困っています。 どなたか、ご理解のある方のご教授をよろしくお願いいたします。 |
| ニノミヤ カズノリ | Åê¹ÆNo.41725 投稿日時: 2009-3-10 19:52 |
職人 ![]() ![]() 居住地: 東京 投稿: 430
使用環境:
CS4 .4.11, .5.7 XP Pro(sp3)Flash Player 10,0,22,87, AIR 1.5.1, IE 5.5 & 6 & 7 & 8, Firefox 2.0.0.20 & 3.0.11 & 3.5, Opera 9.64, Safari 4, Google Chrome 2.0.172.31, Netscape 7.1 |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 具体的な理由はよく分かりませんが、
スタックオーバーフローの要因となるからではないでしょうか。 |
| atsushi kurosawa | Åê¹ÆNo.41726 投稿日時: 2009-3-10 20:08 |
新米 ![]() ![]() 居住地: 東京都 投稿: 7
使用環境:
Windows XP pro Flash CS3 |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 ご返信ありがとうございます。
さきほど、スタックオーバーフローの件でご指摘いただきましたが、まずスタックオーバーフローからお調べしてみましたが、状況からいうと、そうではないような気もそうである気もしています。(曖昧ですみません。) てことで、ドキュメントクラスのソースにコンストラクタ以外のメンバメソッドを追加してみました。(以下ソース) function test(){ trace("メンバメソッドを呼び出しました"); } で、メインのタイムラインで以下のように呼出してみました。 test(); すると、trace();が問題なく実行されました。 つーことは、ドキュメントクラスのインスタンスは既に存在しており、ちょっとした(AS2で言うとこの)グローバルメソッド的な存在になっているのでは? ・・・と思いました。 ですので、これから何らかの形でそのインスタンスにアクセスして、インスタンスを削除→新たにインスタンスを生成できないか試してみます。 ありがとうございました。 |
| ニノミヤ カズノリ | Åê¹ÆNo.41727 投稿日時: 2009-3-10 20:19 |
職人 ![]() ![]() 居住地: 東京 投稿: 430
使用環境:
CS4 .4.11, .5.7 XP Pro(sp3)Flash Player 10,0,22,87, AIR 1.5.1, IE 5.5 & 6 & 7 & 8, Firefox 2.0.0.20 & 3.0.11 & 3.5, Opera 9.64, Safari 4, Google Chrome 2.0.172.31, Netscape 7.1 |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 スタックオーバーフローと書いたのは、例えば下記のコードを実行した場合に陥ります。
今回の場合、ドキュメントクラスに設定されたクラスのインスタンスを生成すると、 ドキュメントクラスと同じくフレームスクリプトを実行する恐れがあり、 上記のコードの様に繰り返し生成していくのではないかな、と想像した次第です。 つまりこう言った問題を想定したエラーではないかと言う想像です。 実際はどうか分かりません。 |
| 野中文雄 | Åê¹ÆNo.41728 投稿日時: 2009-3-10 20:31 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 ドキュメントクラスは、メインタイムラインに関連づけられたクラスです。つまり、インスタンスはメインタイムラインのデータを実体としてもつことになります。
そのメインタイムライン上でインスタンスを生成しようとすることは、シンボルのタイムラインにそのシンボル自身のインスタンスを配置することに等しく、エラーが生じます([シンボルの編集]モードで、[ライブラリ]からその編集中のシンボルをステージにドラッグ&ドロップしてみてください)。 メインタイムライン上でインスタンスを生成したいのでしたら、そのクラスはドキュメントクラスとせず、タイムラインの実体から切離すべきです。ドキュメントクラスには、その切離したクラスのインスタンス生成の処理を記述すればよいでしょう。 引用: famicomさんは書きました: |
| atsushi kurosawa | Åê¹ÆNo.41731 投稿日時: 2009-3-10 22:45 |
新米 ![]() ![]() 居住地: 東京都 投稿: 7
使用環境:
Windows XP pro Flash CS3 |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 >>ニノミヤ様
ご丁寧にありがとうございます。 勉強になります。野中様のご返答で全て解決したのですが、スタックオーバーフローというリスクファクターを知りえたこともかなり大きな収穫でした。 まことにありがとうございました。 |
| atsushi kurosawa | Åê¹ÆNo.41732 投稿日時: 2009-3-10 22:48 |
新米 ![]() ![]() 居住地: 東京都 投稿: 7
使用環境:
Windows XP pro Flash CS3 |
Re: ドキュメントクラスのインスタンスを生成しようとするとエラーが返ります。 >>野中様
引用:
完全にこのコトバに救われました。 僕が定義した問題自体がおかしな話だってことに気づけました。 ありがとうございました。本見ますね^^ |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS4
.4.11,
XP Pro(sp3)



