質問

これをAS1アプリケーションで動作させることはできません。 Color.setTransformメソッドを使用しています。

次のオブジェクトを作成すると、色が白に変わるはずだと思いますか?

var AColorTransform = {ra:100、rb:255、ga:100、gb:255、ba:100、bb:255、aa:100、ab:255};

これは黒ですか?

AColorTransform = {ra:100、rb:-255、ga:100、gb:-255、ba:100、bb:-255、aa:100、ab:-255};

一部のWebサイトで、操作を実行しているオブジェクトに何らかの動的な動作がある場合、setRGBまたはsetTransformを呼び出しても、実際に表示色が変更されないことがあると読みました。誰もこれらの状況についてもっと知っていますか?そして、すべての状況下で色を変更する方法

よろしく。

役に立ちましたか?

解決

AS1は何でもしなければならなかったので久しぶりですが、ベストを尽くします。

color.setTransform()の基本的なコードは次のようになります...

var AColorTransform = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:255};
var myColor = new Color(mc);
myColor.setTransform(AColorTransform);

... mcはどこかのステージ上のMovieClipです。

transform について質問していることを思い出してください。これは、本来、色を から 別のものに変換することを目的としています。特定の色(黒や白など)で確実にペイントする場合は、通常、setRGBを使用する方がはるかに優れています。これは次のようになります。

var myColor = new Color(mc);
//set to black
myColor.setRGB(0x000000);
//or set to white
myColor.setRGB(0xFFFFFF);

これらは確実に機能しますが、いくつかの落とし穴があります。一般に、特定のMovieClipに色が付けられていることを思い出してください...そのMovieClipが範囲外になった場合(つまり、タイムラインから消えた場合)、色も一緒に削除されます。


色変換をよりよく理解したい場合にのみ、さらに読んでください:

その色変換のコンポーネントを見てみましょう。

    a (multiplier 0 > 100%)   b(offset -255 > 255)
r       ra                       rb

g       ga                       gb

b       ba                       bb

a       aa                       bb

4つのチャネル(r、g、b、およびa)があります。最初の3つは赤、緑、青用で、最後の1つはアルファ(透明度)用です。各チャネルには「a」コンポーネントと「b」コンポーネントがあります。したがって、ra、rb、ga、gbなどです。「a」コンポーネントはパーセンテージ乗数です。つまり、既存のチャネルにその値のパーセントを掛けます。 「b」コンポーネントはオフセットです。したがって、「ra」は既存の赤チャネルを乗算します。 'rb'はそれを相殺します。赤チャンネルが 'FF'(赤でいっぱい)で始まる場合、ra:100を設定しても効果はありません。FFに100%を掛けても変化はありません。同様に、赤が「00」から始まる場合(赤がまったくない場合)、「ra」の値は効果がありません。中間にあるものは期待通りに増えます。

オフセットは乗算後に追加されます。そのため、値を掛けてからオフセットできます:

r (result red color) = (RR * ra%) + rb
g (result green color) = (GG * ga%) + gb
b (result blue color) = (BB * ba%) + bb
a (result alpha) = (AA * aa%) + ab

例:RR = 128(16進数0x80)、ra = 50(50%または.5)、rb = -20

結果の赤チャネル:(128 * .5)+(-20)= 44(hex 0x2C)

率直に言って、これは非常にわかりにくいので、変換を完全に回避するという単純な正気を好み、より単純なsetRGB()を使用する傾向があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top