2016-11-20 147 views
0

我正在尝试使用XML和动作脚本3将文本嵌入到Flash中。我发现代码适用于我,但我不知道如何更改字体和字体大小操作脚本。在ActionScript 3中更改字体系列和字体大小

你能帮我吗?谢谢!

我的AS3外商投资企业是这样的:

var yPlacement:int = 20; 
var xPlacement:int = 30; 
var distance:int = 60; 
var myFormat:TextFormat = new TextFormat(); 
myFormat.color = 0xAA0000; 
myFormat.size = 24; 
myFormat.italic = true; 
myFormat.align = TextFormatAlign.CENTER 
var myXML:XML = new XML(); 
var XML_URL:String = "myXMLFile.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener("complete", xmlLoaded); 
function xmlLoaded(event:Event):void { 
myXML = XML(myLoader.data); 
var xmlDoc:XMLDocument = new XMLDocument(); 
xmlDoc.ignoreWhite = true; 
var menuXML:XML = XML(myLoader.data); 
xmlDoc.parseXML(menuXML.toXMLString()); 
for each (var ListItem:XML in myXML..ListItem) { 
var listColor:String = ListItem.itemColor.toString(); 
var listLabel:String = ListItem.itemLabel.toString(); 
var listPhone:String = ListItem.itemPhone.toString(); 
var myText1:TextField = new TextField(); 
myText1.text = listLabel; 
myText1.autoSize = TextFieldAutoSize.LEFT; 
myText1.x = 2; 
myText1.y = 2; 
var myText2:TextField = new TextField(); 
myText2.text = listPhone; 
myText2.autoSize = TextFieldAutoSize.LEFT; 
myText2.x = 2; 
myText2.y = 20; 
var clip_mc = new MovieClip(); 
clip_mc.addChild(myText1); 
clip_mc.addChild(myText2); 
addChild(clip_mc); 
clip_mc.y = yPlacement; 
clip_mc.x = xPlacement; 
yPlacement = yPlacement + distance; 
} 
} 

和XML文件的样子:

<?xml version="1.0" encoding="utf-8"?> 
<XML> 
<myXMLList> 
<ListItem> 
<itemColor>FFFFFF</itemColor> 
<itemLabel>NÃO ACORDES O DRAGÃO</itemLabel> 
<itemPhone>SÁBADO - 14H00</itemPhone> 
<itemSize>32</itemSize> 
</ListItem> 
<ListItem> 
<itemColor>FFE8E8</itemColor> 
<itemLabel>Emily Owen</itemLabel> 
<itemPhone>888-888-8888</itemPhone> 
</ListItem> 
<ListItem> 
<itemColor>DDFDB3</itemColor> 
<itemLabel>Jeff Jones</itemLabel> 
<itemPhone>666-666-6666</itemPhone> 
</ListItem> 
<ListItem> 
<itemColor>DDFDB3</itemColor> 
<itemLabel>Hello</itemLabel> 
<itemPhone>666-666-6666</itemPhone> 
</ListItem> 
</myXMLList> 
</XML> 

回答

1

我发现这个在这里,但没有测试: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d87.html

理论上,看起来像这样(结合你的代码和例子):

var myText1:TextField = new TextField(); 
myText1.text = listLabel; 
myText1.autoSize = TextFieldAutoSize.LEFT; 
myText1.x = 2; 
myText1.y = 2; 

var format1:TextFormat = new TextFormat(); 
format1.size= 14; 

var format2:TextFormat = new TextFormat(); 
format2.font = "Courier"; 

myText1.setTextFormat(format1); 
myText1.setTextFormat(format2); 
1

每次更改文本时,必须在更改文本后调用setTextFormat()方法。 确保如果要嵌入字体您有字体库中的:

enter image description here

enter image description here

如果文本的变化,你不叫调用setTextFormat(参数...) TextFormat将被忽略。

此致敬礼。 Nicolas

+0

AS3指南参考:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/几乎与PHP语言一样清晰:https://secure.php.net/manual/en /index.php 即使AMO PHP参考更高效... – tatactic

+0

php.net充满了评论和例子。 在Adobe网站上:“评论已被系统管理员禁用”。 S..t :( 在php.net上,你可能会发布例子,等等...... 这有时真的很有帮助 – tatactic

+0

我认为这是Adobe选择停止对未来的支持:( 即使他们继续销售Flash CC 这是一个可耻的AMO 他们知道闪存的未来,即使他们继续销售这种产品! – tatactic