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

パスワード:


パスワード紛失

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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kumano
Åê¹ÆNo.4254
投稿日時: 2004-2-26 14:24
新米
居住地: 東京都
投稿: 9
使用環境:
Pro MX2004 7.0.1
importについて教えてください
はじめまして、kumanoです。Flash初心者です。
今後ともよろしくお願いいたします。

FlashMX2004でMCVCモデルを学習しています。
クラスのimportがうまく行かず悩んでいます。
ご指導をよろしくお願いします。

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

E:\flash_lib\view\MyView.fla
E:\flash_lib\controller\MyController.as

MyController.asファイルです
MyController.asファイルです
--
class MyController {
public function MyController(){
}
public function helloText():Void{
trace("Hello!!");
}
}
--
MyView.flaファイルです
--
import flash_lib.controller.*;

var myCtrl = new MyController();
myCtrl.dispText();

trace("終了");
--

MyView.flaでシンタックスチェックを行いエラーは発生しないのですが、プレビューを実行しても、"Hello!!"が表示されません。"終了"は表示されるため、MyControllerクラスが正しく認識されていないと思っています。
そこで、MyView.flaファイルのクラスの初期化部分にMyConrollerを付けてみました。
--
var myCtrl:MyController = new MyController();
--
ここで、シンタックスチェックを行うとエラーが発生するようになりました。

エラー内容
--
**エラー** シーン = シーン 1, レイヤー = レイヤー 1,
フレーム = 1 :行 3:クラス 'MyController' がロードされませんでした。
var myCtrl:MyController = new MyController();
ActionScript エラー数 :1 報告済みエラー :1
--

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

WinXP Pro
MX2004 7.0.1kumanoclub@mars.livedoor.com


----------------
くまの

KURAGE
Åê¹ÆNo.4255
投稿日時: 2004-2-26 15:15
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: importについて教えてください
こんにちは

とりあえず
myCtrl.dispText();

myCtrl.helloText();
に修正してみても駄目でしょうか?


またコンストラクタ内でも何かtraceしてあげると
エラーが特定しやすくなるかもしれません


public function MyController(){
trace("MyController!!");
}

kumano
Åê¹ÆNo.4259
投稿日時: 2004-2-26 15:34
新米
居住地: 東京都
投稿: 9
使用環境:
Pro MX2004 7.0.1
Re: importについて教えてください
kurageさん
回答ありがとうございます。

myCtrl.dispText();

myCtrl.helloText();
に修正してみました。すいません、これは単純なミスでした。

コンストラクタ内もtraceしてみましたが、結果は変わりませんでした。

public function MyController(){
trace("MyController!!");
}


また、
var myCtrl:MyController = new MyController();
の記述を使用するとスクリプトチェックでエラーが出る部分は変わっていません。

importを使用する前にはクラスパスの登録をする必要があるのでしょうか?


----------------
くまの

youich
Åê¹ÆNo.4260
投稿日時: 2004-2-26 15:41
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: importについて教えてください
引用:


importを使用する前にはクラスパスの登録をする必要があるのでしょうか?

デェフォルトのパス以外の場所にクラスファイルを置く場合は登録する必要がありますよ。

kumanoさんのfla内のコードならE:を追加

fla内で
import controller.*;
とするなら
E:?flash_libを追加です。。


----------------
- yo

KURAGE
Åê¹ÆNo.4262
投稿日時: 2004-2-26 15:42
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: importについて教えてください
引用:
importを使用する前にはクラスパスの登録をする必要があるのでしょうか?


デフォルトで設定されてるパス以外ですと必要になります

[パブリッシュ設定]
 ↓
[ActionScriptのバージョン-設定]

でクラスパス E:\ を追加してみてください
kumano
Åê¹ÆNo.4270
投稿日時: 2004-2-26 17:29
新米
居住地: 東京都
投稿: 9
使用環境:
Pro MX2004 7.0.1
Re: importについて教えてください
yoichiさん
返答ありがとうございます。

クラスパスを追加する必要があったのですね!
教えていただいたようにE:を追加してみました。

**エラー** E:\flash_lib\controller\MyController.as: 行 1:コンパイルされたクラス 'MyController' が読み込まれたクラス 'flash_lib.controller.MyController' に一致しません。

が出てしまいコンパイルが通りません。

MyControllerを同じフォルダ内のflaファイルから呼びだしたときはうまく動作します。
E:\Test.flaからMyControllerを実行した結果

Costructor!!
Hello!!
終了


--MyController

var myCtrl:MyController = new MyController();
myCtrl.helloText();
trace("終了");

class MyController {
  public function MyController(){
    trace("Costructor!!");
  }
  public function helloText():Void{
    trace("Hello!!");
  }
}


クラスパスについては理解できたのですが、なぜコンパイルが通らないかわかりません。単純なミスかもしれませんが、はまっています。


----------------
くまの

kumano
Åê¹ÆNo.4271
投稿日時: 2004-2-26 17:31
新米
居住地: 東京都
投稿: 9
使用環境:
Pro MX2004 7.0.1
Re: importについて教えてください
kurageさん
返答ありがとうございます。

yoichiさんより頂いた回答で現在格闘中です。


----------------
くまの

KURAGE
Åê¹ÆNo.4276
投稿日時: 2004-2-26 18:25
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: importについて教えてください
AS2の仕様で(?)、クラス名自体にパスを付けなければいけないようです。

以下ヘルプより引用
引用:
クラス名は、宣言されたファイル内における完全修飾名である必要があります。
つまり、クラスが格納されたディレクトリを反映した名前にしなければなりません。
たとえば、myClasses/education/curriculum ディレクトリに格納された RequiredClass という名前のクラスを作成するには、
このクラスを RequiredClass.as ファイル内で、次のように宣言する必要があります。

class myClasses.education.curriculum.RequiredClass {
}




つまり
以下のようにクラス名を宣言する必要があるみたいです

class flash_lib.controller.MyController{
?省略?
}

kumano
Åê¹ÆNo.4284
投稿日時: 2004-2-26 19:34
新米
居住地: 東京都
投稿: 9
使用環境:
Pro MX2004 7.0.1
Re: importについて教えてください
kurageさん
返答ありがとうございます。

クラス名の完全修飾を行い、無事に問題を解決することができました。

ありがとうございました。


----------------
くまの

Duke15
Åê¹ÆNo.4287
投稿日時: 2004-2-26 19:55
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: importについて教えてください
解決後でなんですが・・

パブリッシュ設定-->ActionScript2.0-->クラスパス
を参照で設定すれば
import MyController;
のままでも、
いいんじゃないでしょうか。


引用:

kumanoさんは書きました:
クラス名の完全修飾を行い、無事に問題を解決することができました。


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

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

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