0

私は Actionscript の初心者であり、これは私自身が初めて作成した「スクリプト」の 1 つであり、明らかな場合はご容赦ください。

「Smiley」という名前のムービークリップがあります

これは、アクション レイヤーフレーム 1にある私のアクション スクリプトです。

stage.addEventListener(MouseEvent.MOUSE_MOVE, mousePosition);

var smiley:MovieClip = addChild(new Smiley) as MovieClip; // **ERROR HERE**
stage.addEventListener(MouseEvent.MOUSE_DOWN,toggleSmiley);
stage.addEventListener(MouseEvent.MOUSE_UP,toggleSmiley); 

function mousePosition(event:MouseEvent) {
smiley.x = mouseX; smiley.y = mouseY;

}

function toggleSmiley(e:MouseEvent):void
{
    smiley.visible = (e.type == MouseEvent.MOUSE_DOWN); 
    }

上記の「ERROR HERE」とマークされた行を参照してください。Flash がエラーをスローしている場所です。
このエラーが発生しています:

シーン 1、レイヤー「アクション」、フレーム 1、ライン 6 1180: 未定義の可能性があるメソッド Smiley を呼び出します。

問題がどこにあるのか混乱しています。前もって感謝します。

4

2 に答える 2

2

あなたの「スマイリー」は、ActionScript で使用するためにリンクされていません。スクリプトが知る限り、存在しません。

ライブラリの「スマイリー」のシンボル プロパティで、「ActionScript 用にエクスポート」にチェックを入れます。

于 2013-06-02T18:39:34.010 に答える
0

ライブラリで、Actionscript 用にスマイリーをエクスポートする必要があります。ライブラリを開き、正方形を選択し、右クリックまたは cmd + クリックで「プロパティ」を選択します。[詳細] セクションがまだ開いていない場合は下にスクロールし、[Actionscript 用にエクスポート] を選択します。「クラス」フィールドには、ライブラリにあるのと同じ名前「Smiley」が表示されるはずです。これにより、Flash でデザインしたムービー クリップのプロパティを持つ独自のクラスが作成されます。

このフィールドの下に「Base Class」が表示され、「flash.display.MovieClip」が含まれている必要があります。これは、スマイリーがすでにムービークリップであることを意味し、スマイリーと呼ばれる特別なタイプに拡張されただけなので、インスタンス化するときにコードでムービークリップとして宣言する必要はありません。ムービークリップ。

アクションに戻り、インスタンス化する行を次のように変更します。

var smiley:Smiley = new Smiley();
addChild(smiley);

一般に、最初にクラスのコンストラクター、つまり「new Smiley()」を呼び出してから、一度にすべてを実行しようとするのではなく、それを表示リストに追加します。

于 2013-06-15T07:27:22.050 に答える