Actionscript Loader错误#1009

时间:2014-08-10 20:59:09

标签: actionscript-3 flash actionscript

我试图创建一个使用Splash.swf然后加载myisogame.swf的基本加载器

我一直收到错误#1009。它是我们在课堂上给出的模板,最初是Splash.swf,定向到Game.swf,但在下面的代码中只提到了它指向的位置。

在模板Game.fla中没有任何代码。

这是Splash

package  {

    import flash.display.MovieClip;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFormat;

    public class Splash extends MovieClip {

        var myLoader:Loader;
        var loadingAnim:LoadingAnimation;
        var percentLoaded:TextField =new TextField();

        public function Splash() {
            // constructor code
            myLoader = new Loader();
            myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
            myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

            var blubox = new BluBox();
            addChild(blubox);
            blubox.x=200;
            blubox.y=200;

            loadingAnim = new LoadingAnimation();
            addChild(loadingAnim);
            loadingAnim.x=200;
            loadingAnim.y=200;
            loadingAnim.scaleX=0;

            var format:TextFormat = new TextFormat();
            format.font = "Verdana";
            format.color = 0xFF0000;
            format.size = 20;
            format.underline = false;

            percentLoaded.defaultTextFormat = format;

            addChild(percentLoaded);
            percentLoaded.x=200;
            percentLoaded.y=230;
            myLoader.load(new URLRequest("myisogame.swf"));
        }

        function onProgress(evt:ProgressEvent):void {   

            var nPercent:Number = Math.round((evt.bytesLoaded / evt.bytesTotal) * 100);    
            loadingAnim.scaleX = nPercent / 100;
            percentLoaded.text = nPercent.toString() + "%";
            trace("load%"+nPercent.toString());
        }

        function onComplete(evt:Event):void {
            myLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
            myLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete); 
            loadingAnim.x=1000;
            addChild(myLoader);
        }



        function onIOError(evt:IOErrorEvent):void {
            trace("IOError loading SWF");
            }
    }

}



5    
6   
7    
8   
11   
12  
13   
14  
20   

25   
26

MyIsoGame代码

package  {

    import flash.display.MovieClip;
    import as3isolib.display.scene.IsoScene;
    import as3isolib.display.IsoView;
    import as3isolib.display.scene.IsoGrid;
    import as3isolib.graphics.Stroke;
    import as3isolib.display.primitive.IsoBox;
    import as3isolib.display.IsoSprite;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent;
    import eDpLib.events.ProxyEvent;
    import as3isolib.geom.Pt;
    import as3isolib.geom.IsoMath;
    import as3isolib.graphics.SolidColorFill;

// before class


    public class MyIsoGame extends MovieClip {

        public var scene:IsoScene;
        public var view:IsoView ;
        public var CELLSIZE:int = 30;//------This is very important to remember cell size. This will affect placement of objects

        var zoomFactor:Number = 1;////Zoom Factor heerrrreee--------------------
        var s1:IsoSprite = new IsoSprite();
        var wr:IsoSprite = new IsoSprite();
        var wre:IsoSprite = new IsoSprite();
        var g1:IsoSprite = new IsoSprite();
        var b1:IsoSprite = new IsoSprite();
        var b2:IsoSprite = new IsoSprite();
        var b3:IsoSprite = new IsoSprite();



        public function MyIsoGame() {
            // constructor code
            trace("hello from constructor");

            scene = new IsoScene();

            view = new IsoView();
            view.setSize((stage.stageWidth), stage.stageHeight);
            view.clipContent = true;
            view.showBorder = false;

            view.addScene(scene); 
            view.addEventListener(MouseEvent.MOUSE_DOWN, onStartPan, false, 0, true);
            view.addEventListener(MouseEvent.MOUSE_WHEEL, onZoom, false, 0, true);




            addChild(view);


            var g:IsoGrid = new IsoGrid();
            g.addEventListener(MouseEvent.CLICK, gridClick);
            g.cellSize=30;
            g.setGridSize(6,6);
            g.y=0;
            g.x=0;
            g.gridlines = new Stroke(2,0x666666);


            g.showOrigin = false;       
            scene.addChild(g);

            g.addEventListener(MouseEvent.CLICK, grid_mouseHandler);

            var box:IsoBox = new IsoBox();
            box.setSize(10, 10, 10);
            box.moveTo(50,50,0);
            scene.addChild(box);


            wr.setSize(30, 30, 30);
            wr.moveTo(60, 0, 0);
            wr.sprites=[new Wrecked()];
            scene.addChild(wr);

            wre.setSize(30, 30, 30);
            wre.moveTo(30, 0, 0);
            wre.sprites=[new Wrecked()];
            scene.addChild(wre);

            g1.setSize(30, 30, 30);
            g1.moveTo(150, 150, 0);
            g1.sprites=[new Gold()];
            scene.addChild(g1);

            b1.setSize(30, 30, 30);
            b1.moveTo(120, 120, 0);
            b1.sprites=[new Blue()];
            scene.addChild(b1);


            b2.setSize(30, 30, 30);
            b2.moveTo(120, 150, 0);
            b2.sprites=[new Blue()];
            scene.addChild(b2);

            b3.setSize(30, 30, 30);
            b3.moveTo(150, 120, 0);
            b3.sprites=[new Blue()];
            scene.addChild(b3);




            scene.render();

            stage.addEventListener(MouseEvent.MOUSE_WHEEL,mouseWheel);///MOUSE WHEEL CONTROL

            stage.addEventListener (KeyboardEvent.KEY_DOWN, keyboarddownlistener)
        }


        private function gridClick(event:ProxyEvent):void
        {
            var me:MouseEvent = MouseEvent(event.targetEvent);
            var p:Pt = new Pt(me.localX, me.localY);
            IsoMath.screenToIso(p);
y

            }


        private var panPt:Pt;
private function onStartPan(e:MouseEvent):void
{
    panPt = new Pt(stage.mouseX, stage.mouseY);

    view.removeEventListener(MouseEvent.MOUSE_DOWN, onStartPan);

    view.addEventListener(MouseEvent.MOUSE_MOVE, onPan, false, 0, true);
    view.addEventListener(MouseEvent.MOUSE_UP, onStopPan, false, 0, true);
}

private function onPan(e:MouseEvent):void
{
    view.panBy(panPt.x - stage.mouseX, panPt.y - stage.mouseY);

    panPt.x = stage.mouseX;
    panPt.y = stage.mouseY;
}
private function boxClick(e:Event) 
            {
                    view.centerOnIso(e.target as IsoBox);
                }


private function onStopPan(e:MouseEvent):void
{
    view.removeEventListener(MouseEvent.MOUSE_MOVE, onPan);
    view.removeEventListener(MouseEvent.MOUSE_UP, onStopPan);

    view.addEventListener(MouseEvent.MOUSE_DOWN, onStartPan, false, 0, true);
}


private var zoomValue:Number = 1;
private function onZoom(e:MouseEvent):void
{
    if(e.delta > 0)
        zoomValue +=  0.10;

    if(e.delta < 0)
        zoomValue -=  0.10;

    view.currentZoom = zoomValue;
}




        ///----------------Grid Mouse Handler
        public function grid_mouseHandler (evt:ProxyEvent):void
    {
        var mEvt:MouseEvent = MouseEvent(evt.targetEvent);
        var pt:Pt = new Pt(mEvt.localX, mEvt.localY);
        IsoMath.screenToIso(pt);
        var roundedX:int = int(pt.x)/30;
        var roundedY:int=  int(pt.y)/30;
        trace("transformed point = "+roundedX +","+roundedY);


///Code that allows things to be put down, located here.        
        var s:IsoSprite= new IsoSprite(); 
        s.sprites=[new Base()];
        s.setSize(30, 30, 30);//Varies via Cell size-
        s.moveTo(roundedX*30, roundedY*30, 0);
        scene.addChild(s);
        scene.render();


    }///------------------Grid Mouse Handler


        public function mouseWheel (event:MouseEvent){
            trace("The Delta value isss: " + event.delta);
            //Get current view zoom
            zoomFactor+=event.delta*0.04;
            view.zoom(zoomFactor)
        }



        public function keyboarddownlistener(e:KeyboardEvent){

            {//Screen-Movement Code
                if (e.keyCode == 40)
                {// The numbers represent the keyboard buttons
                trace("Down Arrow")// I've left these trace commands so you can get a better idea of which one is what.-William 22/04/14
                view.pan(0,5);
                scene.render();
                //Down arrow???
                }
            }

            if (e.keyCode == 38)
            {
                trace("Up Arrow")
                view.pan(0,-5);
                scene.render();
                //Up arrow???
            }

                if (e.keyCode == 37)
            {
                trace("Left Arrow")
                view.pan(5,0);
                scene.render();
                //Left arrow???
            }

                if (e.keyCode == 39)
            {
                trace("Right Arrow")
                view.pan(-5,0);
                scene.render();
                //Right arrow???
            }

            /////OBJECT MOVEMENT code- For moving the donut around
            ///-- I am going to be working on a version of this game where--
            ///- everything can be controlled via a Keyboard only -William 22/04/14
        if (e.keyCode == 65)
            {
                trace("A Left <--")
                //view.x+=15;//Alternate version
                s1.moveBy(30,0,0)
                scene.render();
                //Left?
            }
            if (e.keyCode == 68)
            {
                trace("D Right -->")
                //view.x-=15;//Alternate version
                s1.moveBy(-30,0,0)
                scene.render();
                //Right?
            }

            if (e.keyCode == 83)
            {
                trace("S Down --v")
                //view.x-=15;//Alternate version
                s1.moveBy(0,30,0)
                scene.render();
                //Down?
            }

            if (e.keyCode == 87)
            {
                trace("W Up --^")
                //view.x-=15;//Alternate version
                s1.moveBy(0,-30,0)
                scene.render();
                //Up? 
            }
        }

    }

}

1 个答案:

答案 0 :(得分:0)

我尝试了你提供的代码(底部没有数字),对我来说效果很好。

错误#1009是使用尚未定义的变量时的运行时错误。我建议从Flash Pro调试(ctrl + shift + enter),然后让它告诉你它在哪里中断。

在你的FLA中,你说没有代码,但是在属性面板中,你确实看到了带有&#34; Splash&#34;的类字段。在它?这就是将类与FLA联系起来的原因。

您看到的运行时错误可能不在Splash类中,而是在BluBox或LoadingAnimation中。那些有类文件吗?如果没有,请查看库中,您将有两个导出为具有这些名称的actionScript的影片剪辑。检查它们,看看是否有一些framecript。