Comunidad de diseño web y desarrollo en internet online

Problemas al cargar SWF externo y la libreria Zscrollez

Citar            
MensajeEscrito el 03 Abr 2009 03:39 am
Hola a todos, soy nuevo en el foro, y estoy buskando ayuda porq no puedo salir de este problema.

el problema es el siguiente:

Estoy haciendo una web q dinamica con AS3, se me va bien con la POO por java y esas verduras, el tema es el siguiente, andaba necesitando un buen esfecto de Scrolling con easing y encontre la libreria Zscrollez la cual genera un scroll de texto , usando otra clase llamada RectScuare, la saque por aka en algun tutorial, y me funciono, pude hacer un scrool en mi pelicula principal. Hasta ahi todo bien, el tema es q hice otra pelicula llamada inicio.swf , q se carga externamente a mi pelicula principal main.swf al clickear en un boton. En ella puse la misma libreria Zscroller para alguno de los textos, todo bien, la compilo y ejecuto individualemtne y me anda.
El PROBLEMA esta cuando ejecuto el main.swf y llama a el archivo inicio.swf, y cuando clickeo en nun boton q me muestra un texto copn scroll me sale el error 1009:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at Zscrollez/createSrollBar()
at Zscrollez/scrollBarProperties()
at TextoImportante/frame1()
Osea, cuando ejecuto individualmente el archivo inicio.swf me anda el scroll de texto, pero cuando lo ejecuta importado desde el main, me crea un conflicto de algun tipo q hace q en el siguiente metodo Zscrollez/createSrollBar() haga referencia a un objeto nullo, y la verdad no se porq SUCEDE

Perdon por la explikacion muy extensa. pero no encuentro otra forma menos larga de explikarlo

codigo de la libreria Zscrollez:

Código :

package clases{ 
   // 
   import flash.display.*; 
   import flash.events.*; 
   import flash.geom.Rectangle; 
   import fl.transitions.Tween; 
   import fl.transitions.easing.*; 
   import clases.RectScuare;
   //----------------------------------------------- 
   public class Zscrollez extends Sprite { 
      // 
      private var holder       :MovieClip; 
      private var clip         :MovieClip; 
      private var clipMask     :RectScuare; 
      private var dragger      :RectScuare; 
      private var slider       :RectScuare; 
      private var bGround      :RectScuare; 
      private var bgAlpha      :Number; 
      private var bgColor      :uint; 
      private var hg           :uint; 
      private var scrolled     :uint; 
      private var friction     :uint; 
      private var currentY     :int; 
      private var draggerHg    :uint; 
      private var draggerColor :uint; 
      private var sliderColor  :uint; 
      private var fade         :Tween; 
      private var fadeAmount   :Number; 
      private var wheel        :Boolean; 
      //------------------------------------------------------------------------ 
      public function Zscrollez(_clip:MovieClip, _hg:uint, _friction:uint = 5, _wheel:Boolean = false):void { 
         // 
         clip       = _clip; 
         hg         = _hg; 
         friction   = _friction; 
         wheel      = _wheel; 
         // 
         if (clip.height > hg) { 
            // 
            createHolder(); 
            createMask(); 
            createSrollBar(); 
            addListeners(); 
         } 
      } 
      //--------------------------------------------------------------------------- 
      public function set scrollWheel(b:Boolean):void { 
         // 
         wheel = b; 
         addListeners(); 
      } 
      // 
      public function set handCursor(h:Boolean):void { 
         // 
         dragger.buttonMode = h; 
      } 
      //--------------------------------------------------------------------------- 
      public function scrollBarProperties(_draggerHg:uint, _draggerC:uint, _sliderC:uint):void { 
         // 
         draggerHg    = _draggerHg; 
         draggerColor = _draggerC; 
         sliderColor  = _sliderC; 
         // 
         createSrollBar(draggerHg, draggerColor, sliderColor); 
         addListeners(); 
      } 
      //--------------------------------------------------------------------------- 
      public function backGround(_bgColor:uint = 0xFFFFFF, _bgAlpha:Number = 0):void { 
         // 
         bgColor = _bgColor; 
         bgAlpha = _bgAlpha; 
         // 
         bGround = new RectScuare(clip.width, hg, bgColor); 
         bGround.x = bGround.y = 0; 
         bGround.alpha = bgAlpha; 
         holder.addChild(bGround); 
         holder.swapChildren(bGround, clip); 
      } 
      //--------------------------------------------------------------------------- 
      private function createHolder():void { 
         // 
         holder = new MovieClip(); 
         holder.x = clip.x; 
         holder.y = clip.y; 
         clip.x = clip.y = 0; 
         holder.addChild(clip); 
         addChild(holder); 
      } 
      //--------------------------------------------------------------------------- 
      private function createMask():void { 
         // 
         clipMask = new RectScuare(clip.width, hg, 0x000000);
       clipMask.alpha=0;
         clip.mask = clipMask; 
         holder.addChild(clipMask); 
      } 
      //--------------------------------------------------------------------------- 
      private function createSrollBar(dH:uint = 30, dC:uint = 0xffffff, sC:uint = 0xCCCCCC):void { 
         // 
         draggerHg    = dH; 
         draggerColor = dC; 
         sliderColor  = sC; 
         // 
         slider = new RectScuare(8, hg, sliderColor); 
         dragger = new RectScuare(8, dH, draggerColor); 
         slider.x = dragger.x = clip.width + 5; 
         holder.addChild(slider); 
         holder.addChild(dragger); 
      } 
      //-------------------------------------------------------------------------- 
      private function dragOn(e:Event):void { 
         // 
         dragger.startDrag(false, new Rectangle(dragger.x, 0, 0, slider.height - dragger.height)); 
         dragOnOutSide(); 
      } 
      private function dragOff(e:Event):void { 
         // 
         dragger.stage.removeEventListener(MouseEvent.MOUSE_UP, dragOff); 
         dragger.stopDrag(); 
      } 
      private function dragOnOutSide():void { 
         // 
         dragger.stage.addEventListener(MouseEvent.MOUSE_UP, dragOff); 
      } 
      //--------------------------------------------------------------------------- 
      private function fadeIn(e:Event):void { 
         // 
         e.type == "rollOver" ? fadeAmount = 0.5 : fadeAmount = 1; 
         fade = new Tween(e.target, "alpha", Strong.easeOut, e.target.alpha, fadeAmount, 0.5, true); 
      } 
      //--------------------------------------------------------------------------- 
      private function easeIn(e:Event):void { 
         // 
         if (friction >= 5) friction = 5; 
         // 
         scrolled = dragger.y / (hg - dragger.height) * 100; 
         currentY = -(clip.height - hg) * scrolled / 100; 
         clip.y += (currentY - clip.y) / friction; 
      } 
      //--------------------------------------------------------------------------- 
      private function aplyScrollWheel(e:MouseEvent):void { 
         // 
         dragger.y += e.delta * -4; 
         // 
         if (dragger.y < 0) { 
            // 
            dragger.y = 0; 
 
         } else if (dragger.y > (slider.height - dragger.height)) { 
            // 
            dragger.y = slider.height - dragger.height; 
         } 
      } 
      //-------------------------------------------------------------------------- 
      private function addListeners():void { 
         // 
         dragger.addEventListener(MouseEvent.ROLL_OVER, fadeIn); 
         dragger.addEventListener(MouseEvent.ROLL_OUT, fadeIn); 
         dragger.addEventListener(MouseEvent.MOUSE_DOWN, dragOn); 
         dragger.addEventListener(MouseEvent.MOUSE_UP, dragOff); 
         dragger.addEventListener(Event.ENTER_FRAME, easeIn); 
         // 
         if (wheel == true) { 
            clip.addEventListener(MouseEvent.MOUSE_WHEEL, aplyScrollWheel); 
         } 
      } 
      //------------------------------------------------------------------------- 
 
   }// class 
}// package 


Codigo de la libreria RectScuare

Código :

package clases{ 
                // 
   import flash.display.Sprite; 
   import flash.display.Graphics; 
   // 
   public class RectScuare extends Sprite { 
      // 
      private var clip    :Sprite; 
      private var wd      :uint; 
      private var hg      :uint; 
      private var bgColor :uint; 
      // 
      public function RectScuare(_wd:uint, _hg:uint, _bgColor:uint):void { 
         // 
         wd      = _wd; 
         hg      = _hg; 
         bgColor = _bgColor; 
         // 
         drawRectScuare(); 
      } 
      // 
      private function drawRectScuare():void { 
         // 
         clip = new Sprite(); 
         clip.graphics.beginFill(bgColor); 
         clip.graphics.drawRect(0, 0, wd, hg); 
         addChild(clip); 
      } 
   }// class 
}// package


Codigo en el Fotograma q posee el MovieClip donde va a ponerse el Texto Scrolleado:

Código :

import clases.Zscrollez; 
var textoClip1:Clip = new Clip(); 
textoClip1.x=0;
textoClip1.y=0;

var eScroll:Zscrollez = new Zscrollez(textoClip1, 275.6); 
eScroll.scrollBarProperties(60, 0x0B6BCA, 0x666666); 
eScroll.backGround(0x053769, 0); 
eScroll.scrollWheel = true; 
eScroll.handCursor = true; 
eScroll.x = eScroll.y = 0; 
addChild(eScroll); 
stop();



ANTE NADA MUCHAS GRACIAS A LOS Q ME RESPONDAN!

Atte Javi

Por javilu22

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Abr 2009 02:14 pm
No leí THE GREAT WALL OF PAPER , pero en el primer párrafo indicas que la librería te tira un error 1009 que no sale cuando la ejecutas por si mismo. Eso quiere decir que hay un problema de rutas (referencias a root ... es raro en AS3) o que la instancia de algo que debería estar no existe (pero existe cuando lo ejecutas por si solo) Claro, con tanto code, el debug será una fiesta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Abr 2009 05:11 pm
eso mismo pense, el problema de rutas, para importar las clases externas, pero intente creando 2 MovieClips uno llamado Zscrollez y otro RectScuare dentro de mi inicio.swf, y les pegue en el 1er fotograma de cada MC el codigo de esas clases (sacando las palabras claves como package, public, private, etc para q no me tire error de compilacion) entonces las hago vinculables para ActionScript, y creo instancias de esos MovieClips y llamo a sus constructores. Con eso tambien me anda, Perfectamente, me crea el scroll igual, pruebo el inicio.swf y me anda de maravilla, pero cuando pruebo el main.swf y lo carga , me sale de nuevo ese error, Con esto elimino la posibilidad de rutas, ya q son instancias de MovieClips :(:( , sigo en lo mismo...

Muchas gracias Jorge por tu respuesta!

veamos si podemos arreglarlo, sino tendre q resignarme y crear un scroll casero con efecto easing. no tan bonitocomo el otro. si tienen alguna otra idea sera bienvenida :)

Por javilu22

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Abr 2009 11:05 pm
ninguna idea??? alguien sabe si las rutas de un archivo importado se ponen de distinta manera? por ejemplo, en el main.swf q estaria en el index de mi sitio, al pasarle una ruta relativa le pongo q lea "noticias.xml" , y en un clip importado externamente la ruta como seria?? yo puse la ruta absoluta , y me anduvo ("html://www.misitio.com/noticias.xml"), pero si tengo q importar un pakete o clase no se bien como seria....

javi

Por javilu22

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Abr 2009 12:19 pm
La ruta siempre es la del archivo principal

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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