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.asCó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));
}
}
}