帮助这个AS3代码

时间:2011-01-06 01:06:12

标签: css flash actionscript-3

你好我是非常新的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内容填充它。我不想创建一个新的文本字段,我已经在电影上有一个dinamic文本字段,并选择了html选项。问题是有些东西我做错了,我使用这个简单的行:mydinamictext.htmlText = htmlText。但结果是一个非CSS的格式文本。这是一个屏幕截图,其中一个是在代码中创建的文本字段,最下面的一个是我的textfield: alt text 那么,我如何将css和字体应用到我的动态文本字段而不是创建一个新的。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将CSS样式应用于舞台上的文本字段。您最初将CSS设置为displayHTML方法中动态创建的文本框。

如上所述,您需要使用以下内容:

mydinamictext.textStyleSheet = textStyleSheet;

你应该能够在你mydinamictext.htmlText = htmlText

的上方使用那行代码

祝你好运。