クラスパスが設定された後でも (AS3)、Flash CS3 が MovieClip 基本クラスを見つけられないのはなぜですか?
-
18-09-2019 - |
質問
髪を引き裂く。MovieClip を拡張する as3 クラス (blah.Foo) を作成しました。これはパッケージ内に存在せず、Flash CS3 がネストされたパッケージについて問題を報告したため、「裸の」クラスです。
そしてはい、それはネストされています myproj/as/何とか/Foo.asはい、ファイルの先頭にある flash.display.MovieClip をインポートします。
私も持っています myproj/fla/main.fla。main.fla は、Flash Player 9 に対して AS3 として公開するように設定されています。main.fla には myproj/as/ を含むクラスパスがあります
main.fla のフレーム 1 シーン 1:
import blah.Foo;
var myfoo:Foo = new Foo();
stop();
Foo.as の Foo のクラス定義でコンパイラが停止します。
import flash.display.MovieClip;
class blah.Foo extends MovieClip //<=== dies here
{
//whatever...
}
それは次のように訴えています。「1017:基本クラス MovieClip の定義が見つかりませんでした。」
誰か助けてください!AS3 の最も基本的なクラスの 1 つが見つからないわけがありません。
解決
Actionscript 3.0 は AS2 のように動作しません
これを試して
package blah
{
import flash.display.Movieclip;
public class Foo extends MovieClip
{
...
お役に立てれば。
他のヒント
覚えて:
ECMAScript にはプライベート クラスがまだ実装されていませんが、パッケージの外でクラスを宣言すると、クラスはパッケージと同じように「動作」します。したがって、メインドキュメントからクラスにアクセスするという問題が発生します。
パッケージに入ったら、クラスにアクセスする方法を指定する必要があります。「public」修飾子を使用してクラスを宣言すると、パッケージの外部からクラスにアクセスできるようになります。
ら~