Copy link to clipboard
Copied
怎么使用JSFL获取本地的字体列表啊,查看了文档并未找到相关的API,我知道AS3可以.
Copy link to clipboard
Copied
Um, what? Maybe "Find Font Locations" is what you're looking for, but I can't understand your question.
Copy link to clipboard
Copied
Thank you for your reply.But it is not the correct answer.
My solution:
*******************AS 3.0********************
var locFontList:String = getFontList();
function getFontList() : String
{
var allFonts : Array = Font.enumerateFonts(true);
allFonts.sortOn("fontName",Array.CASEINSENSITIVE);
var resut : Array = [];
for(var i : uint = 0 ; i < allFonts.length ; i++)
{
var child : String = allFonts.fontName;
resut.push(child);
}
var fontList = resut.toString();
fontList = Escape(fontList);
return fontList;
}
function transmitFontList() : String
{
return locFontList;
}
ExternalInterface.addCallback("callMySWF", transmitFontList);
function Escape(strS:String):String
{
var iCount:Number;
var strD:String;
var strChar:String;
var iChar:Number;
var arrHex:Array=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
strD="";
for(iCount=0;iCount<strS.length;iCount++)
{
strChar=strS.charAt(iCount);
if(strChar==" ")
strD+=" ";
else if(("A"<=strChar && strChar<="Z") || ("a"<=strChar && strChar<="z") || ("0"<=strChar && strChar<="9"))
strD+=strChar;
else if (strChar=="-" || strChar=="_" || strChar=="." || strChar=="*" || strChar=="+" || strChar=="/")
strD+=strChar;
else if(strChar.charCodeAt(0)<0x007f)
{
strD+="%";
iChar=strChar.charCodeAt(0);
strD+=arrHex[iChar>>>4];
strD+=arrHex[iChar & 0x000f];
}
else
{
strD+="%u";
iChar=strChar.charCodeAt(0);
strD+=arrHex[iChar>>>12];
strD+=arrHex[(iChar & 0x0f00)>>>8];
strD+=arrHex[(iChar & 0x00f0)>>>4];
strD+=arrHex[iChar & 0x000f];
}
}
return strD;
}
************************END AS 3.0*********************
***********************JSFL******************************
var fonts = unescape(callMyPanel("replaceFont"));
fonts = fonts.replace("\"","");
var fontArr = fonts.split(",");
fontArr.sort();
function callMyPanel(panelName)
{
if(fl.swfPanels.length > 0)
{
for(x = 0; x < fl.swfPanels.length; x++)
{
if(fl.swfPanels
{
var s = fl.swfPanels
return s;
}
}
}
else
fl.trace("no panels");
}
Copy link to clipboard
Copied
Well, given that you didn't even ask a question in a language I can read, all I could do was guess what you want.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now