問題は色後の影を変更することであるが にオブジェクトと同じ色を変化させ、シャドウフィルタの色を変更することなく、色 を変更する方法があります?
はあなたが変換色にしたいあなたはドロップシャドウ化したいアイテムとアイテムを分離する必要があります。 1つの方法は、thisclip
の "コンテナ"を作成し、コンテナ自体に影を適用し、次にthis clip
の色のみを変換することです。私はあなたがそうのような彼らの通常のインスタンス名で任意の追加の子供たちを参照することができます(私が示したように)コードによってコンテナMCを作成する場合
var cty:ColorTransform = new ColorTransform();
cty.color = 0xFFFF00; //# yellow
var shdw:DropShadowFilter = new DropShadowFilter();
shdw.color = 0x000000; //# black
shdw.strength = 1;
shdw.distance = 3; shdw.angle = 45;
shdw.blurX = shdw.blurY = 3; //# linked since same value for both
var contMC : MovieClip = new MovieClip;
addChild(contMC); //# add to stage
contMC.addChild(thisclip); //# add "thisclip" into container MC
contMC.x = 0; contMC.y = 0; //# set your own position
//thisclip.filters=[shdw];
contMC.filters=[shdw];
thisclip.addEventListener(MouseEvent.CLICK, myevent);
function myevent(e:MouseEvent):void
{
thisclip.transform.colorTransform = cty;
//e.currentTarget.transform.colorTransform = cty; //# use this for ANY listening object
}
はただ覚えている...私は何を意味するかを示すために、あなたのコードを修正しました:
contMC.thisclip.transform.colorTransform = cty;
先端#1:がないようにするには、あなたがそれにインスタンス名contMC
カット/ペースト(thisclip
MCをステージ上のコンテナMCを作成するかのようにthisclip.transform.colorTransform = cty;
しかし、あなたは今のコードでそれを参照します追加するコンテナ、あなたのthisclip
自身がMC(またはスプライト)を持っている場合は、代わりにそのインスタンス名でそのコンテンツをターゲットにすることができ、いくつかの「着色される」内容を保持:someContent
がある一方で
thisclip.someContent.transform.colorTransform = cty;
(ここではthisclip
、影付きの容器になり内部MCを色変換する)。
先端#2:私はあなたがどんなMCは色変換に応えるクリックした可能性がどのように表示するようにラインe.currentTarget.transform.colorTransform = cty;
(ただし、使用されていないので、コメントアウトされた)を追加しました。ただ、彼らはそうのようなイベントを聞いていることを確認してください。...チェックし、最終的に.colorTransform = cty;
ことを設定する前に、cty.color = some new Value;
if
内のステートメントを使用して、クリックした項目ごとに応じて色を調整すると(今は複数持つことができます
clipInstanceName.addEventListener(MouseEvent.CLICK, myevent);
はうまくいった、ありがとう – Koden