0

私はしばらくストロボのウェブサイトに取り組んできましたhttp://strobepage.com/

ユーザーがストロボ用に独自の色を選択できるようにしたい.これは基本的に、より多くの色の組み合わせをカバーし、サイトのスペースを節約できることを意味します..これまでのところ、2つのムービークリップを作成してみました.各色..それをインスタンスおよびムービークリップ全体として参照し( MovieClip(colour1) )、その色を変更します..これは機能しますが、ユーザーが「次へ」をクリックして進行する場合にのみ、その特定のインスタンスでのみ機能しますROOT ムービーの次のフレーム (入れ替わるムービー クリップが表示されます) では、ムービー クリップは元の状態に戻ります。

ボタンを押したときにムービー クリップに永久に色を付ける方法はありますか... ないようです.. ここで、さまざまな色を含むムービー クリップをたくさん作成して、ボタンを押したときに考えてみませんか? 、これらのムービー クリップの 1 つは、ユーザーが選択したムービー クリップ間で交換する 2 つのフレームを持つ別のムービー クリップに挿入されます。 .

私はこれを理解できる方法で説明したことを願っています..ムービークリップがたくさんあります..

とにかく、解決策を思い付くことができる人に事前に感謝します:D

あなたが説明していることのAS3の例を教えてください:D

4

2 に答える 2

0

軽量で維持しやすい状態に保ちたい場合は、タイムライン フレームではなく、コードを使用して色を取得することをお勧めします (これにより、ストロボの実行が高速になります)。これは、ColorTransformを使用すると非常に簡単に実現できます。以下は、その操作をカプセル化する私が書いた関数です。色を付けたいオブジェクトを最初の引数として受け入れ、色の 16 進数値を 2 番目の引数として受け入れます。

function tint(obj:Object, color:uint):void {
    /* Colors the object using transform */

    // Pull the individual primaries
    var r:Number = (color >> 16 ) & 0xFF;
    var g:Number = (color >> 8) & 0xFF;
    var b:Number = color & 0xFF;

    // Apply if valid
    if (obj.hasOwnProperty("transform")) {
        obj.transform.colorTransform = new ColorTransform(0,0,0,1,r,g,b,0);
    }
}

たとえば、ステージ上に「ボックス」と呼ばれる DisplayObject があり、それを明るい青色にしたいとします。次のようにします。

tint(box, 0x1b8afc);

それが役立つことを願っています。

于 2012-08-30T15:03:28.987 に答える
0

各色のムービー クリップを作成し、同じ x、y に配置します。それらをすべてvisible=falseのままにして、特定のmcをvisible=trueにします。colortranform を使用して、変更を他の MC に反映します。

于 2012-08-30T14:17:05.587 に答える