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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     class内から他のclassを呼べない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ken462
Åê¹ÆNo.16538
投稿日時: 2005-4-6 19:06
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
class内から他のclassを呼べない
いくつかのCLASSがあり
その1つは navigation というCLASSで
このCLASSには、static でいくつもの変数があり
さまざまなところで使用される変数やMCへの参照を定義しています。

navigationクラスに
public static var abc:Number;
があるときに

タイムラインからは
navigation.abc で参照できるのですが

クラスMyclass 内から参照しようとすると

Classes\navigation.as: 行 1:コンパイルされたクラス 'Classes.navigation' が読み込まれたクラス 'navigation' に一致しません。
     class Classes.navigation {

**エラー** C:\Classes\Myclass.as: 行 30:navigation' という名前のプロパティはありません。
     		navigation.abc


とエラーがでてしまいます。
どうしたら解決できるのでしょうか?

野中文雄
Åê¹ÆNo.16540
投稿日時: 2005-4-6 20:23
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: class内から他のclassを呼べない
まず、ご使用の環境は、Flash MXでなく、MX 2004(おそらくProfessional)ですよね。[環境]欄を修正されるか、(一時的な使用などでしたら)ご質問に明記してください([FLASH MX2004特設リング]なのだから省略ということでしたら、少し回答者に対して不親切です。回答者はまず[環境]欄に目をとめます)。

一般にクラス名は、頭を大文字にする「習慣」(決まりではありません)があります。
引用:
ken462さんは書きました:
いくつかのCLASSがあり
その1つは navigation というCLASSで

クラスパスおよびパッケージの理解に、不十分な点があるように思われます。

クラスnavigationは、どこのパスに格納されているのですか? タイムラインからパッケージパスなしに参照できるということは、ActionScript定義済みクラスが存在するConfiguration/Classesでしょうか? 定義済みクラスと一緒にすると、カスタムクラスがどれだか管理しにくくなります。ですから、グローバルクラスパスに、ご自分のカスタムクラス保存用のパスを追加する方がよいでしょう。
引用:
navigationクラスに
public static var abc:Number;
があるときに

タイムラインからは
navigation.abc で参照できるのですが

navigationクラスをConfiguration/Classesに格納したのでしたら、クラス定義にパッケージパスClassesの指定は不要です。グローバルクラスパスに別途パスを追加して、そこにClassesというパッケージを作成されたのでしたら、つぎの定義で結構です。
引用:
クラスMyclass 内から参照しようとすると
Classes?navigation.as: 行 1:コンパイルされたクラス 'Classes.navigation' が読み込まれたクラス 'navigation' に一致しません。
     class Classes.navigation {

navigationクラスをConfiguration/Classesに格納したのでしたら、パッケージパスなしの以下の参照方法で結構です。グローバルクラスパスに別途パスとClassesパッケージを加えたのでしたら、参照にはクラス定義と同様パッケージパスClassesが必要になります。
引用:
**エラー** C:?Classes?Myclass.as: 行 30:navigation' という名前のプロパティはありません。
     		navigation.abc

とエラーがでてしまいます。

別途グローバルクラスパスを追加して、そこにClassesパッケージを作成し、パッケージ内にNavigationクラスを定義しました。以下のスクリプトは、問題なく動作しました。
// ActionScript 2.0クラス定義ファイル: グローパルクラスパス/Classes/Navigation.as
class Classes.Navigation {
    public static var abc:Number;
    function Navigation(n:Number) {
        abc = n;
    }
    function getStaticProperty() {
        // return Classes.Navigation.abc;  // これでもOK
        return abc;  // 同クラスの静的プロパティはクラス参照不要
	}
}

// Fla(SWF)ファイル: テスト用
// フレームアクション
var obj:Classes.Navigation = new Classes.Navigation(1);
trace(obj.getStaticProperty());  // 出力: 1


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

ken462
Åê¹ÆNo.16544
投稿日時: 2005-4-6 23:36
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
Re: class内から他のclassを呼べない
野中さん、ご返信ありがとうございます。

ご説明とクラスパスおよびパッケージのところを
あらためてじっくりよまさせていただきたましたところ
無事解決できました。

今まで一歩一歩だった感じが
十歩くらい前進した気分です。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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