Salve a tutti. Sto cercando di sviluppare un sito web in modo tale da poter essere visualizzato sia in versione flash che html. Le pagine html sono minimali (testo, qualche hyperlink testuale, e poche immagini), e utilizzo dei css semplici, quindi ho pensato che sarebbe una buona idea poterle usare come contenuto per la versione in flash.

Questo package contiene i metodi per caricare il css e creare la TextField che conterrà la pagina.

ContentText.as:
codice:
package
{
    import flash.display.MovieClip;
    import flash.text.*;
    import fl.transitions.*;
    import fl.transitions.easing.*;
    import flash.text.StyleSheet;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.*;
    
    
    public class ContentText extends MovieClip
    {
        private var bodyURLLoader:URLLoader;
        private var bodyURLRequest:URLRequest;
        private var bodyTextField:TextField;
        public var bodyPage:String;
        public var bodyTransitionManager:TransitionManager;
        public function ContentText(bodyString:String)
        {
            bodyPage = bodyString;
            bodyURLLoader = new URLLoader();
			bodyURLRequest = new URLRequest("percorso_sito/style.css");
			bodyURLLoader.addEventListener(Event.COMPLETE, onLoadCSS);
			bodyURLLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			bodyURLLoader.load(bodyURLRequest);
        }
        private function ioErrorHandler(evt:IOErrorEvent):void
        {
            trace('download failed');
        }
        private function onLoadCSS(event:Event):void
        {
            bodyTextField = new TextField();
            var css:StyleSheet = new StyleSheet();
            css.parseCSS(event.target.data);
            
            bodyURLRequest = new URLRequest(bodyPage);
            
            bodyTextField.x = 0;
            bodyTextField.y = 0;
            bodyTextField.width = 346;
            bodyTextField.height = 540;
            bodyTextField.multiline = true;
            bodyTextField.wordWrap = true;
            bodyTextField.autoSize = TextFieldAutoSize.LEFT;
            bodyTextField.selectable = false;
            bodyTextField.styleSheet = css;
            bodyTextField.condenseWhite = true;
            addChild(bodyTextField);
            bodyURLLoader.removeEventListener(Event.COMPLETE, onLoadCSS);
            bodyURLLoader.addEventListener(Event.COMPLETE, onHTMLLoaded);
            bodyURLLoader.load(bodyURLRequest);
		}
        private function onHTMLLoaded(evt:Event):void
        {
            trace(evt.target.data);
            bodyTextField.htmlText = evt.target.data;
            bodyTransitionManager = new TransitionManager(this);
            bodyTransitionManager.startTransition({type:Wipe, direction:Transition.IN, duration:1.5, easing:None.easeOut});
        }
    }
}
Questo invece è il codice actionscript all'interno del frame.

codice actionscript:
codice:
import ContentText;

stop();

var ct:ContentText;

if(ct && contains(ct)) removeChild(ct);
	ct = new ContentText("percorso_sito/home.html");
	addChild(ct);
	trace(getChildAt(0));
La pagina viene caricata correttamente all'interno dell'swf, e il testo viene formattato secondo le proprietà del css. L'unico problema è l'allineamento delle immagini, che pur essendo visualizzate, non rispettano gli allineamenti specificati all'interno della pagina html.

Ho trovato queste informazioni riguardo i tag html supportati: QUI, e le proprietà css ammesse: QUI

C'è un modo per risolvere questo problema? Grazie a tutti.