您好IM在AS3非常新,所以我是一個痘痘弄得試圖讓一個簡單的修改這個代碼:幫助這個AS3代碼
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.text.StyleSheet;
var fonts:Array /* of String */ = ["fonts/DroidSerif.swf","fonts/Lobster.swf"];
var fontsLoaded:int = 0;
var textStyleSheet:StyleSheet;
loadFonts();
function loadFonts():void
{
for each (var fontURL:String in fonts)
{
var fontLoader:Loader = new Loader();
fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onFontLoaded);
fontLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onFontLoadError);
fontLoader.load(new URLRequest(fontURL));
}
}
function onFontLoadError(event:IOErrorEvent):void
{
trace("ERROR: Could not find font "+event.target.loaderURL);
}
function onFontLoaded(event:Event):void
{
fontsLoaded++;
if (fontsLoaded == fonts.length) {
onFontsLoadComplete();
}}
function onFontsLoadComplete():void
{
trace("FONTS");
trace(fonts.length + " fonts have been loaded");
loadCSS();
}
function loadCSS():void
{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onCSSLoadComplete);
loader.load(new URLRequest("css/styles.css"));
}
function onCSSLoadComplete(event:Event):void
{
trace("CSS");
textStyleSheet = new StyleSheet();
textStyleSheet.parseCSS(event.target.data);
loadXML();
}
function loadXML():void
{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
loader.load(new URLRequest("xml/content.xml"));
}
function onXMLLoadComplete(event:Event):void
{
// get xml from event target data
var xml:XML = XML(event.target.data);
// convert the xml to a string
var xmlString:String = xml;
// send xml string to the displayHTML method
trace("CARGO XML");
displayHTML(xmlString);
}
function displayHTML(htmlText:String):void
{
var htmlTextBlock:HTMLTextBlock = new HTMLTextBlock();
htmlTextBlock.blockWidth = 720;
htmlTextBlock.textStyleSheet = textStyleSheet;
htmlTextBlock.setHTML(htmlText);
htmlTextBlock.x = 0;
htmlTextBlock.y = 0;
addChild(htmlTextBlock);
trace("AJA");
}
現在,讓我們集中在最後一個函數,displayHTML()。正如你所看到的,我幾乎不知道這個函數創建一個文本字段並填充html內容。我不想創建一個新的文本框,我已經有一個動畫文本框的電影,並選擇了html選項。問題是,有什麼我做錯了,我用這個簡單的行:mydinamictext.htmlText = htmlText。但結果是一個非Css格式的文本。這裏是一個屏幕截圖,其中一個是用代碼創建的textfield,另一個是用我的文本框創建的文本框: 那麼,如何將css和字體應用到我的動態文本框中,而不是創建一個新的。非常感謝!
你有'mydinamictext.textStyleSheet = ...'在那裏嗎? – 2011-01-06 01:27:43
如果您使用它,您將獲得此錯誤:場景1,圖層'圖層1',圖框1,線87 \t 1119:通過靜態類型爲flash.text:TextField的引用訪問可能未定義的屬性textStyleSheet。 – DomingoSL 2011-01-06 01:58:57
您需要設置的TextField屬性是styleSheet,因此您可以很輕鬆地在TextField的文檔中查找mydinamictext.styleSheet:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/ flash/text/TextField.html#styleSheet – 2011-01-06 03:27:57