применить внешний CSS к XML, загруженному во Flash Actionscript - PullRequest
0 голосов
/ 20 января 2012

Мне нужно сделать в стиле xml во флэш-игре. Вот что я пробовал, но стиль CSS не работает:

это моя таблица стилей woorden.css :

.f {color:red;}

это мой xml woorden.xml :

<?xml version="1.0" encoding="utf-8"?>
<woorden>
    <spel>
        <goed>boordevol</goed>
        <fout>boordenvol</fout>
        <fbk><![CDATA[Het is dus ber<span class="f">e</span>goed, boordevol, reuzeleuk en apetrots, maar berenvel en reuzenlaars.]]></fbk>      
    </spel>     
</woorden>

и это мой actionScript на данный момент:

package {
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.Event;
import flash.xml.*;
import flash.text.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.ui.Mouse;

public class BO_tussen_n extends MovieClip {
    internal var woorden:XML;
    internal var spelAr:Array;
    internal var sheet:StyleSheet;
    internal var myLoader:URLLoader;

    public function BO_tussen_n () {
        //constructor
        var ld:myLd = new myLd();
        ld.x = 20;
        ld.y = 160;
        ld.name = "ld";
        addChild (ld);

        load_xml ();
    }
    internal function load_xml () {
        var myLoader:URLLoader  = new URLLoader();
        var itemNumber:uint = 0;

        myLoader.load (new URLRequest("woorden.xml"));
        myLoader.addEventListener (Event.COMPLETE, handleMyData);

        function handleMyData (event:Event):void {
            woorden = new XML(event.target.data);
            woorden.ignoreWhite = true;
            myLoader = null;
            load_css ();
        }

    }
    internal function load_css () {
        myLoader = new URLLoader();
        sheet = new StyleSheet();

        myLoader.load (new URLRequest("woorden.css"));
        myLoader.addEventListener(Event.COMPLETE, load_game);
    }

    internal function load_game (event:Event) {
        trace(myLoader.data);
        sheet.parseCSS(myLoader.data);
        removeChild (getChildByName("ld"));
        add_text ();
    }
    internal function add_text () {
        var myFont:Font = new myFt();
        var myFmt:TextFormat = new TextFormat();
        myFmt.font = myFont.fontName;
        myFmt.align = "center";
        myFmt.leading = 1.2;
        myFmt.size = 14;
        myFmt.bold = true;

        var myText:TextField = new TextField();
        myText.defaultTextFormat = myFmt;
        myText.x = 5;
        myText.y = 5;
        myText.width = 500;
        myText.height = 100;
        myText.autoSize = "left";
        myText.textColor = 0x000000;
        myText.multiline = true;
        myText.wordWrap = true;
        myText.styleSheet = sheet;
        myText.htmlText = woorden.spel[0].fbk;
        myText.name = "topTekst";

        addChild (myText);
    }
}

edit: для эксперимента я добавил h1-стиль в свою таблицу стилей, и флэш-память ДОЛЖНА отображать его правильно. Так это может быть связано с тегом span или классом?

1 Ответ

0 голосов
/ 23 января 2012

В таблице стилей я заменил: .f {color: red} на .f {color: # ff0000;} С тех пор у меня не было проблем с этим.

...