トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
YOSHIZAWA
Åê¹ÆNo.3038
投稿日時: 2004-1-21 1:14
新米
居住地: Tokyo
投稿: 7
使用環境:
WinXP, FlashMX2004Pro(7.0.1), Mozilla Firefox
AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
FlashMX2004Proで、ActionScript2クラスのインポートで、ちょっと困っています。

独自に定義したFooクラスとBarクラスの2つのクラスがあったとします。2つのクラスを互いに参照させたいのですが、それぞれに import 文を書くと「ロードされた別のクラスの名前 "***" とコンフリクトします」というエラーが発生します。

たしかに、Foo -> Bar -> Foo -> Bar という、インポートの堂々巡りになるので、エラーがでるのは、あたりまえですね。
※型指定しなければイイのかもしれませんが・・・

推測では、何か命令を指定をすれば良いのだと思いますが、その命令がわかりません。ということで、解決方法をご存知の方いましたら、アドバイス頂ければと思います。


[Foo.as]-------------------------

import Bar;

class Foo {
 var bar:Bar;
 function Foo() {
  bar = new Bar( this );
 }
}

[Bar.as]-------------------------

import Foo;

class Bar {
 var foo:Foo;
 function Bar( owner ) {
  foo = owner;
 }
}


----------------
YOSHIZAWA.CO.UK
http://www.yoshizawa.co.uk/

野中文雄
Åê¹ÆNo.3039
投稿日時: 2004-1-21 1:48
ちょんまげら
居住地: 東京
投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
クラスがトップレベルにあるなら、インポートは不要ではないですか?
引用:
YOSHIZAWAさんは書きました:
FlashMX2004Proで、ActionScript2クラスのインポートで、ちょっと困っています。

参考のため、仮に両クラスがパッケージパスFooBarにあるとします。
// [Foo.as]-------------------------
// import Bar;
import FooBar.*;

class Foo {
 var bar:Bar;
 function Foo() {
  bar = new Bar( this );
 }
}

// [Bar.as]-------------------------
// import Foo;
import FooBar.*;

class Bar {
 var foo:Foo;
 function Bar( owner ) {
  foo = owner;
 }
}

// [SWF]-----
// フレームアクション
import FooBar.*;
var fooObj:Foo = new Foo();
var barObj:Bar = new Bar(fooObj);


----------------
 

YOSHIZAWA
Åê¹ÆNo.3044
投稿日時: 2004-1-21 11:40
新米
居住地: Tokyo
投稿: 7
使用環境:
WinXP, FlashMX2004Pro(7.0.1), Mozilla Firefox
Re: AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
野中さん、素早い&的確なアドバイスありがとうございます。
問題は無事解決しました。

thanks!


----------------
YOSHIZAWA.CO.UK
http://www.yoshizawa.co.uk/

野中文雄
Åê¹ÆNo.3505
投稿日時: 2004-2-4 12:09
ちょんまげら
居住地: 東京
投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
少し前にyouichさんより場外でご指摘いただいた点を、アップデートしていませんでした。スクリプトの一部修正です。
引用:
Fumioさんは書きました:
参考のため、仮に両クラスがパッケージパスFooBarにあるとします。

クラス定義には、完全なクラスパスを用いるのが正しいです。元のクラス名のみの定義でも動作しますが、保証はされないと思われます。
// [Foo.as]-------------------------
// import Bar;
import FooBar.*;

// class Foo {
class FooBar.Foo {
 var bar:Bar;
 function Foo() {
  bar = new Bar( this );
 }
}

// [Bar.as]-------------------------
// import Foo;
import FooBar.*;

// class Bar {
class FooBar.Bar {
 var foo:Foo;
 function Bar( owner ) {
  foo = owner;
 }
}


----------------
 

KSK
Åê¹ÆNo.5792
投稿日時: 2004-4-1 18:54
新米
居住地: 熊本県
投稿: 11
使用環境:
Win2000,Flash2004,ActionScript2.0
Re: AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします

おそらく元々の話題とはまったく異なるのですが、
.ASファイルを入れ替えたり更新したりした際に、
表題のエラーメッセージが出て、にっちもさっちも行かなくなったことがあります。

.ASファイル内のコードが正しいことはほぼ間違いなかったのですが、
それまで何の問題もなく動いていたものが突然コンパイルできなくなったため、大弱りしました。

で、そのときには、コンパイル時に生成される中間ファイル(*.ASO)
を全て削除してフルリビルドかけたらうまくいきました。


同じように困っている方が居られたら参考にされてください。


----------------
ksk

nao
Åê¹ÆNo.5811
投稿日時: 2004-4-1 23:36
職人
居住地:
投稿: 208
使用環境:
WinXP Pro
Flash8 Professional
Re: AS2 - ロードされた別のクラスの名前 "***" とコンフリクトします
明示的にimportを記述するのであれば
imort packageName.*;
とワイルドカードの指定で行えば怒られないと思います.


----------------
nao [seto@graffiti-web.org]

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops