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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     importについて教えてください2
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.4926
投稿日時: 2004-3-12 20:25
importについて教えてください2
importについて教えてください
はじめまして、EARTHDAWNです。Flash初心者です。
今後ともよろしくお願いいたします。

クラスのimportがうまく行かず悩んでいます。
ご指導をよろしくお願いします。

以下のディレクトリ構造でファイルを格納しています。

C:\fratest\controler\collection\Collection.as
C:\fratest\controler\collection\CollectionItem.as

Collection.asです.
--
class controler.collection.Collection
{
public function Colection():Void
{

}

}

--
CollectionItem.asファイルです
--
class controler.collection.CollectionItem
{
var aaa :Collection;
public function ColectionItem():Void {
}

}--

Collection.asでシンタックスチェックを行いエラーは発生しません。
CollectionItem.asでシンタックスチェックを行いエラーは発生しません。

ここで、シンタックスチェックを行うとエラーが発生するようになりました。

エラー内容
--
**エラー** C:\fratest\controler\collection\Collection.as:
行 2:コンパイルされたクラス
'controler.collection.Collection' が読み込まれたクラス
'Collection' に一致しません。
{

ActionScript エラー数 :1 報告済みエラー :1--

Classpathは下のようになっています。

----------------------------------
$(LocalData)/Classes
C:\fratest
.
----------------------------------
の3件を設定しています

この先どのようにすればよいかわかりません。
ご指導をよろしくお願いします。

WinXP Home
MX2004 Pro

PS.くまのさんの質問も見てみましたが、よくわかりませんでした。
 似たような話題ですいません。
----------------
EARTHDAWN

野中文雄
Åê¹ÆNo.4928
投稿日時: 2004-3-12 21:25
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: importについて教えてください2
本論の前に、各クラスにpublicしているfunctionは、メソッドですか? 意図的にlをひとつにして、クラス名と違えてあるのでしょうか? コンストラクタ関数でしたら、戻り値の指定はエラーになります。
// ActionScript 2.0クラス定義: controler.collection.Collection.as
class controler.collection.Collection
{
	// public function Collection()  // コンストラクタなら
	public function Colection():Void
	{
	}
}

// ActionScript 2.0クラス定義: CollectionItem.asファイル
class controler.collection.CollectionItem
{
	// var aaa :Collection;  // パスの指定なし
	var aaa : controler.collection.Collection;
	// public function CollectionItem() {  // コンストラクタなら
	public function ColectionItem():Void	{
	}
	
}

引用:
WinXP Home
MX2004 Pro


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

ゲスト
Åê¹ÆNo.4929
投稿日時: 2004-3-12 21:34
Re: importについて教えてください2
すいませんでした。コンストラクターのつもりで書きました。
class controler.collection.Collection
{
public function Colection()
{

}

}

class controler.collection.CollectionItem
{
var aaa :Collection;
public function ColectionItem(){

}

}

上記の誤りでした。シンタックスエラーは相変わらずコンパイルエラーが出ます。
野中文雄
Åê¹ÆNo.4930
投稿日時: 2004-3-12 22:02
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: importについて教えてください2
えーと、先のポストでスクリプトにコメントを入れていたはずですので、読んでくださいね。(^^; 念のため、再度コメント入れます
引用:
EARTHDAWNさんは書きました:
すいませんでした。コンストラクターのつもりで書きました。

class controler.collection.Collection
{
	// こういうときはクラス名からコピー&ペーストしましょう!!
	// public function Colection()
	public function Collection()
	{
		
	}
	
}

class controler.collection.CollectionItem
{
	// var aaa :Collection;
	var aaa :controler.collection.Collection;
	// 同上!!
	// public function ColectionItem(){		
	public function CollectionItem(){		
	}	
}

全然直っていないですからね。
引用:
上記の誤りでした。シンタックスエラーは相変わらずコンパイルエラーが出ます。


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

ゲスト
Åê¹ÆNo.4932
投稿日時: 2004-3-12 22:13
Re: importについて教えてください2
野中さんありがとうございます。

こちらで実験した現状を書きます。

var aaa :controler.collection.Collection;

、でコンパイルエラーが出なくなりました。


上記を

var aaa :Collection;
にし、

import controler.collection.Collection;

をつけたら、コンパイルエラーは出なくなりました。

import controler.collection.*;
では、コンパイルエラーです。
野中文雄
Åê¹ÆNo.4948
投稿日時: 2004-3-13 14:38
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: importについて教えてください2
コンストラクタ関数のスペル間違いは、修正されたのでしょうか?
引用:
EARTHDAWNさんは書きました:
var aaa :controler.collection.Collection;

、でコンパイルエラーが出なくなりました。

以下のimportステートメントは、クラスcontroler.collection.CollectionItemに追加したのですか? 私の環境では、コンパイルエラーは発生しません。
引用:
import controler.collection.*;
では、コンパイルエラーです。


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

ゲスト
Åê¹ÆNo.5105
投稿日時: 2004-3-17 11:31
Re: importについて教えてください2

野中さん、お返事ありがとうございます。
返事遅れてすいません。
こちらでも再度、検証を行ってみます。また、返事します。
渡辺真太郎
Åê¹ÆNo.5108
投稿日時: 2004-3-17 12:00
新米
居住地: 神奈川県相模原市
投稿: 20
使用環境:
MX2004
XP
Re: importについて教えてください2
このimport現象ですが、
1.Flashはコンパイルを行うと
asファイルをswfに吐き出す前に、そのasファイルの中間コードのようなものを出力している様子です。

C:\Documents and Settings\<USER_NAMW>\Local Settings\Application Data\Macromedia\Flash MX 2004\ja\Configuration\Classes\aso

の中のasoファイルです。

asファイルが更新されていないときは
その中間コードを参照して、コンパイルの時間を短縮している
と推測されますが、asファイルが更新されると今度は
コンパイル時に新しく、asoファイルを更新するようです。

class A と class B が相互参照を行っていたときには
class Aが書き換わりますので、Aのaso書き換わります。
このとき、B側ではasoが更新されないので、古いA のaso
を参照してしまっているために、コンフリクトという状況になる様です。

状況を再現するには、class A と class Bをつくり、
わざと片方にシンタックスエラーができるように書き換えます。
その後、シンタックスエラーが無いように書き戻すと
コンフリクトというエラーだけが表示されます。

class Aにシンタックスエラーがないのであれば、
class B側でシンタックスチェックを行うか(シンタックスチェックときにもasoファイルを生成している?)、ClassA側でも何回かシンタックスチェックをしていればそのうちエラーがでなくなります。

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

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