Comunidad de diseño web y desarrollo en internet online

addChild() de un TextField no funciona en IE6

Citar            
MensajeEscrito el 16 Jun 2009 09:06 pm
Hola,

Estoy creando un visor de imágenes. La aplicación carga los nombres de los ficheros de las imagenes y los textos asociados a cada imagen de un archivo XML. Una vez cargados los nombres y los textos, se cargan las imagenes y se ponen en el stage con el texto debajo.

El problema es que en Internet Explorer 6 (IE6) no se muestran los textos, mientras que en Firefox si que se muetran. El código es el siguiente:

Código ActionScript :

private function loadImages():void
{
   if (_indexLoaderHandler < _imageFileNames.length)
   {
      _loaderHandler = new LoaderHandler(_imageFileNames[_indexLoaderHandler]);
      _loaderHandler.addEventListener(Event.COMPLETE, loaderHandlerComplete);
   }
   else
   {
      startTimer();
   }
}
      
private function loaderHandlerComplete(e:Event):void
{
   var item:Sprite = new Sprite();
   var itemImage:Sprite = new Sprite();
   var itemText:TextField = new TextField();
   
   // Imagen
   itemImage = e.target as Sprite;
   item.addChild(itemImage);
   
   // Text
   itemText.text = _imageTexts[_indexLoaderHandler];
   itemText.y = _textY;
   item.addChild(itemText);
      
   item.x = _itemOffset;
   _itemOffset += item.width;
   
   _container.addChild(item);
         
   _indexLoaderHandler++;
         
   loadImages();
}


Muchas gracias.

Por bendi

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jun 2009 07:15 am
A nadie le suenan comportamientos diferentes de aplicaciones realizadas en Actionscript 3.0 segun el navegador? Especialmente en InternetExplorer 6?

Pongo el código completo:

Main.as :

Código ActionScript :

package 
{
   import flash.display.Sprite;
   import flash.display.LoaderInfo;
   import flash.display.Shape;
   import flash.text.TextField;
   import flash.text.TextFieldAutoSize;
   import flash.text.TextFormat;
   import flash.text.TextFormatAlign;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.events.Event;
      
   import LoaderHandler;
   
   /**
    * ...
    * @author
    */
   public class Main extends Sprite 
   {
      private var _XML:XML;
   
      private var _loaderHandler:LoaderHandler;
      private var _indexLoaderHandler:uint;
      
      private var _itemOffset:uint;

      private var _imageFileNames:Array = new Array();
      private var _imageTexts:Array = new Array();
      
      private var _container:Sprite;
      
      private var _textWidth:Number = new Number();
      private var _textHeight:Number = new Number();
      private var _textY:Number = new Number();
      private var _textColor:Number = new Number();

      public function Main():void 
      {
         if (stage) init();
         else addEventListener(Event.ADDED_TO_STAGE, init);
      }

      private function init(e:Event = null):void 
      {
         removeEventListener(Event.ADDED_TO_STAGE, init);
         
         // entry point
         _indexLoaderHandler = 0;
         _itemOffset = 0;

         _textWidth = 170;
         _textHeight = 70;
         _textY = stage.stageHeight - _textHeight;
         _textColor = 0x999999;

         _container = new Sprite();
         addChild(_container);

         var urlLoader:URLLoader = new URLLoader();
         var urlRequest:URLRequest = new URLRequest("data.xml");

         urlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
         urlLoader.load(urlRequest);
      }
      
      private function xmlLoaded(e:Event):void
      {
         _XML = new XML(e.target.data);
         
         for (var index:uint = 0; index < _XML.imagen.length(); index++)
         {            
            _imageFileNames.push(_XML.imagen[index]);
            _imageTexts.push(_XML.texto[index]);
         }
         
         loadImages();         
      }
      
      private function loadImages():void
      {
         if (_indexLoaderHandler < _imageFileNames.length)
         {
            _loaderHandler = new LoaderHandler(_imageFileNames[_indexLoaderHandler]);
            _loaderHandler.addEventListener(Event.COMPLETE, loaderHandlerComplete);
         }
      }
      
      private function loaderHandlerComplete(e:Event):void
      {
         var item:Sprite = new Sprite();
         var itemImage:Sprite = new Sprite();
         var itemText:TextField = new TextField();
         var textFormat:TextFormat = new TextFormat();
                  
         // Text
         itemText.autoSize = TextFieldAutoSize.CENTER;
         itemText.multiline = true;
         itemText.wordWrap = true;
         itemText.width = _textWidth;
         itemText.text = _imageTexts[_indexLoaderHandler];
         itemText.y = _textY;
         
         // Imagen
         itemImage = e.target as Sprite;
         item.addChild(itemImage);
         item.addChild(itemText);
         
         item.x = _itemOffset;
         _itemOffset += item.width + 20;
         _container.addChild(item);
         
         _indexLoaderHandler++;
         
         loadImages();
      }
   }
}


LoaderHandler.as

Código ActionScript :

package 
{
   import flash.display.Loader;
   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.ProgressEvent;
   import flash.net.URLRequest;
   import flash.text.TextField;
   
   /**
    * ...
    * @author
    */
   public class LoaderHandler extends Sprite 
   {
      private var _urlAsset:String;
      
      public function LoaderHandler(urlAsset:String):void
      {
         _urlAsset = urlAsset;
         
         if (urlAsset != null)
         {
            iniLoad();
         }
      }
      
      private function iniLoad():void
      {
         var loader:Loader = new Loader();
         
         loader.contentLoaderInfo.addEventListener(Event.INIT, onInitHandler);
         
         loader.load(new URLRequest(_urlAsset));
         
         addChild(loader);
      }
      
      private function onInitHandler(e:Event):void
      {
         dispatchEvent(new Event(Event.COMPLETE));
      }
   }
   
}

Por bendi

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.