tcr.nupe 0 Denunciar post Postado Setembro 24, 2010 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; } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 24, 2010 Só de curioso remove isso: loader.alpha = 0.0; E o tween depois dele E verifica se ele ainda aplica o mesmo erro... E se mostra sua mensagem de teste ou n. to achando que tu ta tentando colocar propriedade um object que não aceita alpha Abraços Compartilhar este post Link para o post Compartilhar em outros sites
tcr.nupe 0 Denunciar post Postado Setembro 24, 2010 opa, removi mas n adiantou.. se ajudar, no arquivo colecao.swf, em vez de likar o Script.as na propriedade class eu adicionar via as3 com import e new Scritp(); e depois der addChild(elemento Script) ocorre o mesmo erro q quando eu chamo pelo index. e outra coisa, tenho outros arquivos além da colecao.swf como empresa.swf, contato.swf... e esses abrem normal.. mas não tem nada de classe nesses outros pode ver uma prévia em www.datazip.com.br/propostas/seculoxxx vlw Compartilhar este post Link para o post Compartilhar em outros sites
kaarl_ 0 Denunciar post Postado Setembro 26, 2010 Cara o problema não esta nessa parte? preloader.x = stage.stageWidth/2; preloader.y = stage.stageHeight/2; da um trace("teste") antes disso e ve se aparece. Eu ja tive esse problema, e se não me engano o problema é que quando voce roda o swf e ele funciona é pq ele entende a propriedade stage. Só que quando voce carrega ele a partir de outra classe ele ja não reconhece mais o stage. tente usar um root.stage ou parente.stage Tenho quase certeza que é isso, aconteceu cmg , só não lembro como fiz pra resolver , mas acho que foi isso =p Compartilhar este post Link para o post Compartilhar em outros sites
tcr.nupe 0 Denunciar post Postado Setembro 27, 2010 Cara o problema não esta nessa parte? preloader.x = stage.stageWidth/2; preloader.y = stage.stageHeight/2; da um trace("teste") antes disso e ve se aparece. Eu ja tive esse problema, e se não me engano o problema é que quando voce roda o swf e ele funciona é pq ele entende a propriedade stage. Só que quando voce carrega ele a partir de outra classe ele ja não reconhece mais o stage. tente usar um root.stage ou parente.stage Tenho quase certeza que é isso, aconteceu cmg , só não lembro como fiz pra resolver , mas acho que foi isso =p opa.. entao cara.. em partes o problema era isso tb.. mas n era só isso.. segui a sua dica e resolvi parte do problema.. aew tive q redeclarar algumas variaveis fora do private.. mas enfim.. você está certo sobre o comentário.. ajudou bastante.. vlw, abraço! Compartilhar este post Link para o post Compartilhar em outros sites
kaarl_ 0 Denunciar post Postado Setembro 29, 2010 Magina =D Compartilhar este post Link para o post Compartilhar em outros sites