• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Remove background and create a new one

Contributor ,
Dec 10, 2013 Dec 10, 2013

Copy link to clipboard

Copied

Hi,

I'm making an AS3 game, using the ALAPCA Engine source.

I want to change the background of the scene when the timer is complete.

Normaly, you must click on the exit arrow in order to change the background.

The code is defined in the Background.as and it is like that :

private function leaveRoom(e:MouseEvent):void{

                              player = Engine.player;

                              if (Engine.playerControl){

                                        stageRef.dispatchEvent(new Event("itemClicked"));

                                        var thisExit = e.currentTarget;

                                        //targetBuffer = player.returnTargetBuffer();

                                        var underscore = thisExit.name.search("_");

                                        var nextRoom:String = thisExit.name.substring(underscore + 1);

                                        Engine.newBack = nextRoom;

                                        exitPoint = "startPoint_"+nextRoom;

                                        exitLoc[0] = currentBack[exitPoint].x;

                                        exitLoc[1] = currentBack[exitPoint].y;

 

                                        player.addEventListener("reachedPoint", reachedExit, false, 0, true);

 

                                        // Make sure the player isn't already at the exit point

                                        if (checkForExit()){

                                                  player.dispatchEvent(new Event("reachedPoint"));

                                        } else {

                                                  player.startWalking(exitLoc[0], exitLoc[1]);

                                        }

                              }

 

                    }

 

                    private function reachedExit(e:Event):void{

                              if (checkForExit()){

                                        Engine.lastLocation = currentBack.name;

                                        stageRef.dispatchEvent(new Event("changeBackground"));

                              }

I've made in my puzzle.as class (where all the puzzles are) that :

public function shoot(e:MouseEvent):void{

                              var cocoUn;

                              for (var i in Engine.usableItems){ // Blurgh

                                                            if (Engine.usableItems.displayName == "COCOUN")

                                                                      cocoUn = Engine.usableItems;

                                                  }

                              cocoUn.gotoAndStop("fall");

                              timeCoco.start();

                              timeCoco.addEventListener(TimerEvent.TIMER_COMPLETE, backToJardin);

                    }

So when it’s finished I want to call a function name “backToJardin” that make the player return to the previous background (named "jardin"):

I've put this :

public function backToJardin(e:Event):void{

Engine.newBack = “jardin”;

stageRef.dispatchEvent(new Event(“changeBackground”));

But it is not working... Here the error :

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at com.laserdragonuniversity.alpaca::Engine/createBackground()

at com.laserdragonuniversity.alpaca::Engine/changeBackground()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.display::Stage/dispatchEvent()

at com.laserdragonuniversity.alpaca::Puzzle/backToJardin()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.utils::Timer/tick()

Anyone know what could be the problem ?

Here is my puzzle.as and my background.as files if it's necessary.

Thank you for your help,

Stephan

TOPICS
ActionScript

Views

618

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 10, 2013 Dec 10, 2013

Copy link to clipboard

Copied

stageRef is probably null.  use the trace function to confirm:

trace(stageRef);

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Dec 10, 2013 Dec 10, 2013

Copy link to clipboard

Copied

I've put trace(stageRef) to the backToJardin function. is that right ?

Here's the result :

[object Stage]

Creating new background: jardin

TypeError: Error #1009: Cannot access a property or method of a null object reference.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 10, 2013 Dec 10, 2013

Copy link to clipboard

Copied

that's too bad because stageRef is not the problem and it's therefore probably Engine.newBack that's triggering the problem.  and that means there's probably no easy solution because you'll need to edit Engine.as

but what's line 2117 in Puzzle.as?  that's the line that triggers the error in Engine.as

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Dec 10, 2013 Dec 10, 2013

Copy link to clipboard

Copied

LATEST

The line 2117 is the function is the funtion "backToJardin ". The function where I want to put the code that remove the background and create a new one .

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines