Cargué un swf externo (que es una galeria de imagenes con carga xml), pero cuando pruebo la película, me sale este error:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo. at Main ()
Main es el archivo AS File, que contiene el AS3 de la galería.
El código si lo pruebo con cualquier otro swf me funciona perfecto, pero con la galeria me sale este error. Cómo puedo solucionarlo? el problema está en el Main?
Este es el codigo que tengo cuando llamo a la "galeria":
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.URLRequest;
var SWF:Loader = new Loader();
var ruta:URLRequest = new URLRequest ("galeria.swf");
SWF.load (ruta);
SWF.contentLoaderInfo.addEventListener(Event.COMPLETE, añadir);
function añadir (e:Event) :void{
addChild (SWF);
}
y este es el que tengo dentro de Main
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.filters.DropShadowFilter;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import jel.com.display.SpriteCenter;
import jel.com.events.MenuEvent;
import jel.com.ui.SlideMenu;
import gs.TweenMax;
import gs.easing.Linear;
public class Main extends SpriteCenter
{
private var xml:XML;
private var cargadorImagenes:Loader;
private var imagenFondo:Bitmap;
private var sombra:Sprite;
public function Main()
{
super(800, 600, new FondoDegradado(800, 600, 0x666666));
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
sombra = new Sprite();
sombra.alpha = 0.0;
addChild(sombra);
sombra.filters = [new DropShadowFilter(20, 30, 0x333333, 0.4, 14, 14, 1, 2)];
imagenFondo = new Bitmap();
addChild(imagenFondo);
cargadorImagenes = new Loader();
cargadorImagenes.alpha = 0.0;
addChild(cargadorImagenes);
cargadorImagenes.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoad);
imagenFondo.y = cargadorImagenes.y = sombra.y = 10;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onCompleteXml);
loader.load(new URLRequest("xml/galeria.xml"));
}
private function onCompleteXml(evt:Event):void {
try {
xml = new XML(evt.target.data);
var menu:SlideMenu = new SlideMenu(800, 600, xml);
menu.y = 520;
addChild(menu);
menu.addEventListener(MenuEvent.MENU_CLICK, onMenuClickListener);
cargadorImagenes.load(new URLRequest("images/" + xml.imagen[0]));
} catch (e:TypeError) {
trace("Error al procesar el archivo Xml : "+ e.message);
}
}
private function onCompleteLoad(evt:Event):void {
sombra.graphics.clear();
sombra.graphics.beginFill(0x000000, 1.0);
sombra.graphics.drawRect(0, 0, cargadorImagenes.width, cargadorImagenes.height);
imagenFondo.x = cargadorImagenes.x = sombra.x = Math.round(0.5 * (800 - cargadorImagenes.width));
if (sombra.alpha == 0.0) {
TweenMax.to(sombra, 0.5, {alpha:1.0, ease: Linear.easeNone} )
}
TweenMax.to(cargadorImagenes, 0.5, {alpha:1.0, ease: Linear.easeNone, onComplete:onCompleteTween} );
}
private function onCompleteTween():void {
}
private function onMenuClickListener(evt:MenuEvent):void {
imagenFondo.bitmapData = Bitmap(cargadorImagenes.content).bitmapData;
cargadorImagenes.alpha = 0.0;
cargadorImagenes.load(new URLRequest("images/" + xml.imagen[evt.elemento]));
}
}
}
import flash.geom.Matrix;
import flash.display.GradientType;
import flash.display.SpreadMethod;
import flash.display.InterpolationMethod;
import flash.display.Sprite;
class FondoDegradado extends Sprite {
public function FondoDegradado(_width:Number, _height:Number, color:Number=0xffffff) {
var matrizDegradado:Matrix = new Matrix();
matrizDegradado.createGradientBox(_width, _height, 0.5*Math.PI, 0, 0);
graphics.beginGradientFill(GradientType.LINEAR, [color, color, color, color], [1.0, 0.0, 0.0, 1.0], [0, 100, 200, 255], matrizDegradado);
graphics.drawRect(0, 0, _width, _height);
}
}