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
