Ich möchte nur eine Gradientenmaske erstellen, die dynamisch durch AS3-Code generiert wird - für ein Objekt (ein Pentagon in meinem folgenden Beispiel) und ich kann einfach nicht! [The SWF file of what I've tried.]Dynamisch generiertes Anzeigeobjekt als Gradientenmaske
Der Code funktioniert gut, wenn es ignoriert die Alpha Gradient der dynamisch erzeugten Sprite
für als Verlaufsmaske verwendet wird (es als feste Maske behandelt werden wird), während der genaue Code erkennt die "on-stage" erstelltes Objekt (über die Benutzeroberfläche) als Gradientenmaske!
Ich denke, die Laufzeit kann nicht nur das Objekt als Bitmap und damit die Ignoranz im Cache! Ich bin jedoch fest daran, das zu erreichen! Also bitte, Schuppen auf diese einige Lichter, ist jede Hilfe sehr im Voraus geschätzt :)
var X:Number = 100, Y:Number = 35, W:Number = 350, H:Number = 150;
var mat:Matrix = new Matrix();
mat.createGradientBox(W, H, 0, X, Y);
var gradientMask:Sprite = new Sprite();
gradientMask.graphics.beginGradientFill(GradientType.LINEAR, [0, 0], [1, 0], [0, 255], mat);
gradientMask.graphics.drawRect(X, Y, W, H);
gradientMask.graphics.endFill();
pentagon1.cacheAsBitmap = true;
pentagon2.cacheAsBitmap = true;
onStageGradient.cacheAsBitmap = true;
gradientMask.cacheAsBitmap = true;
pentagon1.mask = gradientMask;
pentagon2.mask = onStageGradient;
stage.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
function _onEnterFrame(e:Event):void {
pentagon1.x += 7;
pentagon2.x += 7;
if (pentagon1.x > 500) {
pentagon1.x = 0;
pentagon2.x = 0;
}
}

Sie haben Recht und du bist mein Held! danke :) Es wäre ausgezeichnet, wenn Sie ein Warum zur Verfügung stellen!) – goodUser
Ein Grund: Flash-Engine kümmert sich nur um das Objekt, das auf der Display-Liste angezeigt wird, wenn es alle Draws macht. Es ist ziemlich allgemein bekannt. – Vesper