Привет, ребята, надеясь на некоторую помощь в этом :( застрял на нем пару дней.
Я создаю ScrollBar с использованием класса Ли Бримелоу ScrollBar . Мне пришлось изменить его, чтобы он работал внутри моих файлов классов и думал, что я на правильном пути, но меня пугает:
Ошибка # 1009: не удается получить доступ к свойству или методу пустой ссылки на объект ошибка.
Когда я запускаю отладку, он попадает в строку, где у меня есть rollerUp);
КОД ИЗ КЛАССА СКРОЛБАР:
import flash.display.*;
import flash.events.*;
import caurina.transitions.*;
public class ScrollBar extends MovieClip
{
private var yOffset:Number;
private var yMin:Number;
private var yMax:Number;
private var thumbsnailTab:MovieClip;
private var theRoller:MovieClip;
public function ScrollBar(myRoller:MovieClip, myTrack:MovieClip, thumbsnails:MovieClip):void
{
yMin = 0;
yMax = myTrack.height - myRoller.height;
theRoller = myRoller;
thumbsnailTab = thumbsnails;
myRoller.addEventListener(MouseEvent.MOUSE_DOWN, rollerDown);
stage.addEventListener(MouseEvent.MOUSE_UP, rollerUp);
}
Вот что показывает мой отладчик:
Сначала я не был уверен, является ли ссылка на этап причиной ошибки или функцией rollerUp, но, поскольку я закомментировал stage.removeEventListener и добавил базовый оператор трассировки, он все равно выдает ошибку, поэтому я считаю это как-то связано с:
stage.addEventListener(MouseEvent.MOUSE_UP, rollerUp);
Теперь я импортировал события. *; в класс ScrollBar ... может быть, проблема в моем основном классе, где я создаю графику для ScrollBar, а также добавляю ScrollBar в список отображения?
КОД ИЗ ГЛАВНОГО КЛАССА:
// Creating Graphics
track1 = new Track;
track1.x = 0;
track1.y = 0;
roller1 = new Roller;
roller1.x = 0;
roller1.y = 0;
sc1 = new EmptyMov;
sc1.x = 764;
sc1.y = 470;
sc1.addChild(track1);
sc1.addChild(roller1);
// Adding ScrollBar to Stage
scroll1 = new ScrollBar(roller1, track1, tab1);
container.addChild(sc1);
container.addChild(scroll1);
addChild(container);
Я застрял здесь, не уверен, почему я получаю эту ошибку ссылки Null, а также не уверен, правильно ли я создаю графику, а также правильно ли использую класс ScrollBar :( любые советы приветствуются!
Обновление кода работает! : D
public function ScrollBar(myRoller:MovieClip, myTrack:MovieClip, thumbsnails:MovieClip):void
{
yMin = 0;
yMax = myTrack.height - myRoller.height;
theRoller = myRoller;
thumbsnailTab = thumbsnails;
myRoller.addEventListener(MouseEvent.MOUSE_DOWN, rollerDown);
}
private function rollerDown(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, rollerUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE, rollerMove);
yOffset = mouseY - theRoller.y;
}