大家好,希望对此有所帮助:(现在坚持了几天。

我正在使用Lee Brimelow's ScrollBar class创建ScrollBar。我不得不对其进行修改以使其可以在我的Class文件中使用,并且认为自己处在正确的轨道上,但是我却感到恐惧:

错误#1009:无法访问空对象引用错误的属性或方法。

当我运行debug时,它会碰到我具有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;
    }

最佳答案

我认为您的问题是stage = null。原因可能只有一个:当您未上演MC时,您试图上台(然后引用为null)。

关于flash - 帮助-使用stage.addEventListener(ScrollBar)时出现空对象错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1532955/

10-11 13:47