0

既存のフラッシュテンプレートを編集しようとしています。FlashCS6とActionScript3.0の使用---これはちょっと新しいです...

ソースファイルにフッタークリップがありました。そこで2つのボタンを編集して追加しました。メインの.flaは、main.asを使用して定義および制御される単一のレイヤーとアクションレイヤーを持つテンプレートの名前です。

次のスクリプトを使用して、ここのアクションレイヤーに書き込むことで、音楽を正常に再生できました。

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

音がよく鳴ります。私が直面している問題は、再生ボタンと停止ボタンを追加することです。これを実現するために、次のスクリプトを使用しました。

import flash.events.Event;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.MouseEvent;

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

btnStop.addEventListener(MouseEvent.CLICK, stopMusic);

function stopMusic(Event:MouseEvent):void{
    sc.stop;
}

btnPlay.addEventListener(MouseEvent.CLICK, playMusic);
function playMusic(Event:MouseEvent):void{
    sc = music.play();
}

ここでエラーが発生します:

シーン1、レイヤー'アクション'、フレーム1、行10 1061:静的タイプClassの参照を介して、未定義の可能性があるメソッドaddEventListenerを呼び出します。

修正方法を教えてください...

4

1 に答える 1

1

親切にご案内させていただきます。

エラーは、btnStopクラスにaddEventListenerという静的メソッドがないことを示しています。mcに名前を付けると、新しいクラスが作成されます。あなたがしていることは、しているようなものです。

Sound.play();

music.play();が必要な場合

デザイン部分のボタンをクリックして修正するには、プロパティパネルの右側に移動し、ボタンに「btnStop」というインスタンス名を付ける必要があります。btnPlayボタンでも同じことをする必要があります。これで、コードでbtnStopを呼び出すと、クラス自体ではなく、ボタンのインスタンスが呼び出されます。

さらに、stopMusic関数には次のものが必要です。

sc.stop();

それ以外の:

sc.stop;

また、2つの関数のパラメーター名を「イベント」にすることはできません。イベントは、AS3APIのクラスの名前です。パラメータ名「e」または「event」を使用してみてください(大文字と小文字が区別されます)。

于 2012-07-24T20:41:20.430 に答える