Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou com o seguinte problema... Tenho os arquivos
index.fla
colecao.fla
Script.as
Thumb.asThumbScroller.as
GaleryChooser.as
Root.as
o funcionamento é o seguinte, no index.fla tenho um menu que da acesso a swf externo e carrega dentro do index o coleção.fla!
ao clicar no menu coleção ele executa o seguinte:
function clickHandler(event:MouseEvent):void {
for (var i:int = 0; i < clipArray.length; i++) {
if (event.currentTarget == clipArray[i]) { //clipArray[i] = colecao.swf
loader.load(new URLRequest(destArray[i]));
preloader.x = stage.stageWidth/2;
preloader.y = stage.stageHeight/2;
addChild (preloader);
addChild (loader);
loader.alpha = 0.0;
TweenLite.to(loader, 7.0, {alpha:0.0, delay:0.0, onCompleteParams:[1.0, loader]});
trace('teste')
} // END if
} // END for
} // END clickHandler
mas após imprimir 'teste' ocorre o seguinte erro:
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at classes::Script()
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at classes::ThumbScroller()
at classes::Script/xmlLoaded()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
OBS: Se executar o colecao.swf separadamente(sem ser carregado) ele executa normal. No arquivo colecao.swf n existe nd dentro apenas a propriedade
Class do arquivo lincada com Script.as
Segue parte dos códigos dos arquivos:
Script.as
package classes {
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
public class Script extends Root {
private var xmlLoader:URLLoader = new URLLoader ();
private var container:Sprite = new Sprite ();
public function init(e:Event):void{
thumbScroller:ThumbScroller;// = Root.thumbScroller;
galleryChooser:GalleryChooser;// = Root.galleryChooser;
}
public function Script () {
xmlLoader.addEventListener (Event.COMPLETE, xmlLoaded);
xmlLoader.load (new URLRequest ('images.xml'));
addChild (container);
Root.stage.addEventListener (Event.RESIZE, stageResized);
}
private function stageResized (evt:Event) : void {
container.y = int ((stage.stageHeight - container.height) * .5);
container.x = 300;
}
private function xmlLoaded (evt:Event) : void {
Root.images = new XML (evt.target.data);
Root.curGal = images.gallery [0].@name;
thumbScroller = new ThumbScroller ();
thumbScroller.y = 160;
container.addChild (thumbScroller);
Thumb.as
package classes {
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.text.*;
import flash.geom.ColorTransform;
//import caurina.transitions.*;
import gs.TweenLite;
import fl.transitions.easing.*;
public class Thumb extends Sprite {
private var size:Number = Root.thumbSize;
private var overSize:Number = Root.thumbOverSize;
private var back:Shape = new Shape ();
private var thumb:DisplayObject;
private var loader:Loader = new Loader ();
private var loaded:Event = new Event ('LOADING_COMPLETE', true, true);
private var per:TextField = new TextField ();
private var format:TextFormat = new TextFormat ();
private var colorInfo:ColorTransform = back.transform.colorTransform;
private var imageInfo:XML;
private var imageLoaded:Boolean = false;
public function Thumb (thumb:DisplayObject, imageInfo:XML) {
this.thumb = thumb;
this.imageInfo = imageInfo;
//back.graphics.beginFill (Root.thumbBorderColour);
back.graphics.drawRect (-overSize * .5, -overSize * .5, overSize, overSize);
back.graphics.drawRect ((size - 5 * overSize) * .1, (size - 5 * overSize) * .1, overSize - size * .2, overSize - size * .2);
back.graphics.endFill ();
back.width = back.height = size;
back.alpha = .7;
thumb.width = thumb.height = size;
thumb.x = thumb.y = -size * .5;
addChild (thumb);
addChild (back);
ThumbScroller.as
package classes {
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import gs.TweenLite;
import fl.transitions.easing.Strong;
// import caurina.transitions.*;
public class ThumbScroller extends Sprite {
private var size:Number = Root.thumbSize;
private var overSize:Number = Root.thumbOverSize;
public var back:Shape = new Shape ();
public var thumbHolder:Sprite;
private var thumb:Thumb;
private var loader:Loader;
private var xml:XML;
private var numItems:int;
private var num:int = 0;
public function ThumbScroller () : void {
//back.graphics.beginFill (Root.thumbBackColour);
back.graphics.drawRect (0, 0, Root.stage.stageWidth, Root.thumbSize + int (Root.thumbSize * .2));
back.graphics.endFill ();
back.filters = [Root.glowFilter];
addChild (back);
}
public function construct (gal:XML) : void {
xml = gal;
numItems = xml.item.length () - 1;
if (thumbHolder != null) {
Root.as
package classes {
import flash.display.Sprite;
import flash.display.Stage;
import flash.filters.GlowFilter;
public class Root extends Sprite {
public static const thumbSize:Number = 250;
public static const thumbOverSize:Number = 450;
public static var thumbScrollSpeed:Number = .08;
public static var imageScrollSpeed:Number = .1;
public static const galleryChooserBackColour:Number = 0xB7AC82;
public static const galleryChooserSelectedColour:Number = 0xDDDDDD;
public static const galleryChooserOverColour:Number = 0xFFFFFF;
public static var glowFilter:GlowFilter = new GlowFilter (0, .8, 10, 10, 1, 3);
public static var thumbGlowFilter:GlowFilter = new GlowFilter (0, .8, 5, 5, 1, 3);
public static var curGal:String;
public static var curImage:String;
public static var stage:Stage;
public static var images:XML = new XML ();
public static var thumbScroller:ThumbScroller;
public static var galleryChooser:GalleryChooser;
public static var container:Sprite;
public function Root () {
Root.stage = this.stage;
}Carregando comentários...