Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I needed this a couple of years ago, luckily Tink already wrote an extension/JSFL script: <a href="http://www.tink.ws/blog/copy-fill-as-as3/" rel="nofollow">Copy Fill as AS3</a>.</p> <p>I remember having small problems with gradients depending on the selection, but forgot what was that all about. If the extension doesn't work properly, here's my slightly changed version:</p> <pre><code>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 &lt; 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 &lt; 0 || localY &lt; 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' ); } </code></pre> <p>If you save this as <strong>Copy Fill as AS3.jsfl</strong> in Flash's <strong>Commands</strong> folder, it should pop up in the Commands menu in the IDE.</p> <p>HTH</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload