0

私は Flash をまったく使用したことがなく、学校のプロジェクトとして、Flash を使用して完全に機能する Web ページを作成するように言われました。私はフォトショップで大量のテクスチャを作成しましたが、正しいアニメーションを実行することにかなり成功しています。ただし、隅にミュート ボタンを配置し、アクティブにすると 2 つのテクスチャが切り替わるようにしたいと考えていました。私が抱えている問題は、彼らに実際に何かをさせることです。

私が言ったように、私は完全に知っていて、コーディングの構文やレイアウトをまったく知りません。私はたくさんのチュートリアルを読みましたが、「パッケージをネストできません」や「ミュートにアクセスできません」などのコンパイラエラーが常に発生します。

現在、「Muted」と「UnMuted」という名前の 2 つのボタン レイヤーがあります。私はすぐに忍耐力を失っているので、本当にアドバイスが必要です. 私が入手したものはすべて機能せず、信じられないほど不正確であるように思われるため、現在、皆さんに提供するコードはありません。

念のため、私は Adob​​e Flash CS3 と ActionScript 3 を使用しています。

提供できる助けをありがとう!

4

2 に答える 2

1

「Programatticus Takeoveriticus」(私のチームで進行中のジョーク) のように聞こえるのは本当に嫌いですが、ほとんどの Flash プログラマーが知っている「テクスチャ」はおそらく最善の方法ではありません。一般に、テクスチャとは、領域を塗りつぶすために使用する画像を指します。

あなたの情報に基づいて、あなたの「テクスチャ」は画像であると想定しています...おそらく.pngまたは.gif形式で保存されていますか?あなたがしたいことは、これらをあなたのライブラリにインポートすることです。

私は CS5.5 を使用しているので、これは少しずれている可能性がありますが、CS3 ではこれに近いはずです。

[ファイル] --> [インポート] --> [ライブラリにインポート...] に移動します。

使用したい画像を選択し、「インポート」を押してください。それらは通常、画面の右側にあるライブラリ ペインに表示されます (ただし、レイアウトによっては別の場所にある場合もあります。問題がある場合は、[ウィンドウ] メニューを使用して見つけてください)。

次に、[挿入] -> [新しいシンボル...] に移動します。

シンボルに名前を付けます。シンボル名のベスト プラクティスは、英数字とアンダースコアのみを使用することです (スペースやその他の句読点は使用しないでください)。

次に、タイプを選択します。これにはムービークリップをお勧めします。

あとはそのままにして「OK」を押します。ステージは、そのムービークリップのみの編集に切り替わります。

タイムラインを見てください。これは重要。タイムラインの最初のフレームをクリックし、ミュートを解除したい画像をライブラリからステージにドラッグします。自由変形ツールを使用して、必要に応じてサイズを変更します。

次に、配置した画像をクリックします。[プロパティ] ペインに移動し、その位置を左 0、上 0 に設定します。

次に、タイムラインで 2 番目のフレームをクリックします。ミュートの画像で上記の手順を繰り返します。この 2 番目の画像のサイズが最初の画像とまったく同じになるように注意してください。

両方の画像をタイムラインに配置したら、適切なフレームで最初のフレームをクリックします。[アクション] タブに移動します (フレームを右クリックし、[アクション] をクリックします)。

次のステートメントを入力します。

stop();

2 番目のフレームでこれを繰り返します。

stop(); ステートメントは、コードによって指示されるまでそのフレームにとどまるように Flash に指示するだけです。

上部にある青い「戻る」ボタンをクリックして、メイン ステージに戻ります。作成したばかりのオブジェクトがステージのどこかに置かれます。(そうでない場合は、ライブラリからステージにドラッグします。) このオブジェクトを必要な場所に配置し、必要に応じてサイズを変更します。

オブジェクトをクリックして選択し、[プロパティ] ペインに移動します。上部の "" と表示されている場所に、オブジェクトのインスタンスの作業名を入力します。このステージで 1 回しか使用していない場合は、ライブラリにあるものと同じ名前を付けてください (以前に名前を付けたものは何でも構いません)。この例では、「btnMute」と呼びます。

ここで、すべてのコードがある領域で、次のように入力します。

//Here we create a boolean (true/false) variable for whether sound is muted.
var muted:Boolean = false;

//Create the event listener for when the mute button is clicked.
btnMute.addEventListener(MouseEvent.CLICK, muteSound);

//Here is the event handler for the above listener.
function muteSound(evt:MouseEvent):void
{
    //If muted is true...
    if(muted)
    {
        //Set muted to false
        muted = false;
        //Change button to "unmuted" state.
        btnMute.gotoAndStop(1);
    }
    //If muted is false...
    else
    {
        //Set muted to true
        muted = true;
        //Change button to "muted" state.
        btnMute.gotoAndStop(2);
    }
}

そのコードの多くは見覚えがあるはずです。私が指摘したい主なことはbtnMute.gotoAndStop(...)、特定のムービークリップに表示されているフレームを変更できるという行です。ステートメントの「...」を、移動したいフレーム番号に置き換えるだけです。

または、コードを使用することもできますbtnMute.gotoAndPlay(...);。各フレームにコードがあるためstop();、同じことが達成されます。

gotoAndStop(...);との主な違いgotoAndPlay(...);は、「AndStop」はフレーム上のコードを実行せず、stop();関数がない場合はその後のフレームを再生しないのに対し、「AndPlay」は実行することです。

お役に立てば幸いです。繰り返しになりますが、別の方法をお勧めすることをお勧めします。ただし、ほとんどの場合、同じことを行うために別のアイテムを非表示にして表示するよりも、この方法の方がはるかにうまく機能することがわかります。

于 2012-06-13T02:32:25.087 に答える
0

あなたの問題が何であるかはよくわかりませんが、これを試してください。

  1. ボタンを作成してステージに配置し、プロパティ ビューで「btnAudio」という名前を付けます。
  2. テクスチャ 1 を作成し、ステージに配置し、プロパティ ビューで「img1」という名前を付けます。テクスチャ 2 で「img2」という名前で同じことを行います。
  3. 新しいレイヤーを作成し、「アクション」を呼び出して、次のコードを記述します。

    //Listener added to your button.
    btnAudio.addEventListener(MouseEvent.CLICK, f_muted);
    
    //Init method to hide your textures.
    function f_init():void {
        img1.visible = false;//Texture 1
        img2.visible = false;//Texture 2
    }
    
    // function to switch your textures
    function f_muted(event:MouseEvent):void{
        trace("switch images");
        img1.visible = true;
    }
    
    f_init();//Hide Textures.
    

これがお役に立てば幸いです。

于 2012-06-12T22:04:50.047 に答える