我需要導出使用Flash編輯器創建的矩形的漸變設置。我們的藝術家用.fla創建一個帶有漸變的矩形。是否可以從.swf或從我可以編寫的Flash插件檢索漸變參數?通過AS3訪問(用於導出)在Flash編輯器中創建的矩形的漸變
1
A
回答
2
幾年前我需要這個,幸運的是Tink已經寫了一個擴展/ JSFL腳本:Copy Fill as AS3。
我記得在漸變方面存在一些小問題,這取決於選擇,但忘記了那是什麼。如果分機不能正常工作,這是我的些許變化版本:
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');
}
如果您保存此爲拷貝到Flash的命令文件夾作爲填充AS3.jsfl,它應該在命令菜單彈出在IDE中。
HTH
3
1
Sothink Decompiler允許您反編譯swf,以便獲得原始FLA。它已付款,但他們有免費試用。
不記得您是否可以在試驗中輸出到fla。
相關問題
- 1. 在Flex/Flash AS3中創建可編輯的形狀?
- 2. Flash AS3線性漸變旋轉問題
- 3. 如何訪問Unity3D中的漸變編輯器?
- 4. 矩形漸變
- 5. Chrome Flash播放器在Flash窗口中創建透明矩形
- 6. 如何使用漸變色條紋邊框通過CSS創建矩形?
- 7. 漸變色圓形矩形
- 8. 創建圖形編輯器
- 9. AS3如何通過他的id訪問inruntime創建的元素?
- 10. 如何創建從左到右具有漸變的矩形
- 11. 石英:無法創建帶漸變填充的圓角矩形
- 12. 將在Flash中創建的矢量圖形導出到svg
- 13. 在AS3 Flash中編輯和保存XML
- 14. Flash AS3:如何在另一個矩形內調整矩形?
- 15. AS3 - 通過變量訪問類信息
- 16. 矩形的OpenGL漸變不起作用
- 17. 在AS3中的類定義文件中訪問GUI創建的元素(Flash CS4)
- 18. Flash AS3從影片剪輯訪問全局變量
- 19. Maya Python:在漸變屬性編輯器中編輯點
- 20. 矩形漸變填充
- 21. Android矩形背景漸變
- 22. 如何使用WP8.1(WinRT)中向外反射的漸變創建矩形?
- 23. 如何在矩形中創建矩形?
- 24. 通過導出(Node.js)訪問HTML文件中的JS變量
- 25. 使用javascript通過父Flash文件訪問子Flash文件中的變量
- 26. 通過flashvars傳遞的問題在flash/actionscript中創建測驗
- 27. 通過Flash Player訪問javascript
- 28. Android的矩形漸變centerX不工作
- 29. 放射漸變的圓角矩形
- 30. 用pylab編輯創建的圖形
也許這可以用JSFL腳本完成。不確定。 – Mattias 2011-01-07 08:10:28