Der Zugriff über AS3 (für den Export) die Gradienten eines Rechtecks ??im Flash-Editor erstellt
-
30-09-2019 - |
Frage
Ich brauche die Gradienteneinstellungen eines Rechtecks ??mit dem Flash-Editor erstellt exportieren. Unsere Künstler erzeugt ein Rechteck mit dem Gradienten in einer Fla. Ist es möglich, die Steigung Parameter aus der .swf oder von einem Flash-Plugin abzurufen ich schreiben könnte?
Lösung
Ich brauchte diese ein paar Jahren, zum Glück Tink bereits geschrieben eine Erweiterung / JSFL Skript: Kopieren Fill als AS3 .
Ich erinnere mich, kleine Probleme mit Steigungen von der Auswahl abhängig, aber vergessen, was das alles zu bedeuten hat. Wenn die Erweiterung nicht richtig funktioniert, hier ist meine leicht verändert Version:
document = fl.getDocumentDOM();
selection = document.getSelectionRect();
selection.left != undefined ? useSelection = true : useSelection = false;
useSelection ? fill = document.getCustomFill( "selection" ) : fill = document.getCustomFill( "toolbar" );
fl.outputPanel.clear();
var output = "";
if(fill.style != "noFill"){
if( fill.style == "solid" )
{
if( fill.color.length == 9 )
{
a = Math.round( ( parseInt( "0x" + fill.color.substr( 7, 2 ) ) / 255 ) * 100 ) / 100;
output += "beginFill( 0x" + fill.color.substr( 1, 6 ).toUpperCase() + ", " + a + " );";
}
else
{
output += "beginFill( 0x" + fill.color.substr( 1, 6 ).toUpperCase() + ", 1 );";
}
}
else if( fill.style == "linearGradient" )
{
output += "beginGradientFill( GradientType.LINEAR, ";
}
else if( fill.style == "radialGradient" )
{
output += "beginGradientFill( GradientType.RADIAL, ";
}
if( fill.style != "solid" )
{
c = new Array();
a = new Array()
for( i = 0; i < fill.colorArray.length; i++ )
{
if(fill.colorArray){
if( fill.colorArray[ i ].length == 9 )
{
c.push( "0x" + fill.colorArray[ i ].substr( 1, 6 ).toUpperCase() );
a.push( Math.round( ( parseInt( "0x" + fill.colorArray[ i ].substr( 7, 2 ) ) / 255 ) * 100 ) / 100 );
}
else
{
c.push( "0x" + fill.colorArray[ i ].substr( 1, 6 ).toUpperCase() );
a.push( 1 );
}
}
}
document.setSelectionRect({left:0,top:0,right:0,bottom:0},true);
document.setSelectionRect(selection,true);
localX = fill.matrix.tx - selection.left;
localY = fill.matrix.ty - selection.top
if(localX < 0 || localY < 0) error = true;
else error = false;
if(useSelection)
{
matrix = 'new Matrix(' + fill.matrix.a + ', ' + fill.matrix.b + ', ' + fill.matrix.c + ', ' + fill.matrix.d + ', ' + localX + ', ' + localY + ')';
}
else
{
matrix = 'new Matrix(' + fill.matrix.a + ', ' + fill.matrix.b + ', ' + fill.matrix.c + ', ' + fill.matrix.d + ', ' + fill.matrix.tx + ', ' + fill.matrix.ty + ')';
}
switch(fill.overflow){
case "Extend":
spreadMethod = "SpreadMethod.PAD";
break;
case "Repeat":
spreadMethod = "SpreadMethod.REPEAT";
break;
case "Reflect":
spreadMethod = "SpreadMethod.REFLECT";
break;
}
!fill.linearRGB ? interpolationMethod = 'InterpolationMethod.RGB' : interpolationMethod = 'InterpolationMethod.LINEAR_RGB';
if(fill.focalPoint != 0) output += "[ " + c.join( ", " ) + " ], [ " + a.join( ", " ) + " ], [ " + fill.posArray.join( ", " ) + " ], " + matrix + ", " + spreadMethod + ", " + interpolationMethod + ", " + fill.focalPoint + "); ";
else output += "[ " + c.join( ", " ) + " ], [ " + a.join( ", " ) + " ], [ " + fill.posArray.join( ", " ) + " ], " + matrix + ", " + spreadMethod + ", " + interpolationMethod + "); ";
}
if(error)
{
fl.trace("You have moved your selection!Please re-select the shape and run this command again");
}else
{
fl.clipCopyString( output );
fl.trace( output );
}
}else{
fl.trace( 'No Fill is Selected' );
}
Wenn Sie speichern diese als Kopieren Fill als AS3.jsfl in Flashs Befehle Ordner, sollte es in der IDE im Menü Befehle eingeblendet.
HTH
Andere Tipps
Werfen Sie einen Blick auf die ausgezeichnete Bibliothek as3swf geschrieben von Claus Wahlers, von Wich können Sie
Parse, erstellen, bearbeiten und veröffentlichen SWF-Dateien
.
Sothink Decompiler können Sie die swf dekompilieren, so dass Sie die ursprüngliche FLA erhalten. http://www.sothink.com/product/flashdecompiler/ es wird bezahlt, aber sie haben eine kostenlose Testversion.
konnte sich nicht erinnern, wenn Sie fla in der Studie exportieren könnte.