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:
Questo invece è il codice actionscript all'interno del frame.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}); } } }
codice actionscript:
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.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));
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.

Rispondi quotando