OmegaDan
OmegaDan

Reputation: 5

Action Script 3 Error 1120 Access of undefined Property

I am having problems with my code after i added the grow and shrink button code. it is telling me

"C:\Users\Dan\Desktop\Flash\Interactive Story Book\Main.as, Line 28 1120: Access of undefined property onShrinkButtonClick."

"C:\Users\Dan\Desktop\Flash\Interactive Story Book\Main.as, Line 29 1120: Access of undefined property onGrowButtonClick.

Instance names are correct and are not the same as my AsLinkage or the object name.

package 
{

import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends MovieClip
{

    var startPage:StartPage;
    var hillPage:HillPage;
    var lakePage:LakePage;

    public function Main()
    {
        startPage = new StartPage();
        hillPage = new HillPage();
        lakePage = new LakePage();
        addChild(hillPage);

        //Add event listeners
        startPage.buttonHill.addEventListener(MouseEvent.CLICK, onHillButtonClick);
        startPage.buttonLake.addEventListener(MouseEvent.CLICK, onLakeButtonClick);
        hillPage.btsButton.addEventListener(MouseEvent.CLICK, onStartButtonClick_hill);
        lakePage.btsButton.addEventListener(MouseEvent.CLICK, onStartButtonClick_lake);
        hillPage.upButton.addEventListener(MouseEvent.CLICK, onUpButtonClick);
        hillPage.downButton.addEventListener(MouseEvent.CLICK, onDownButtonClick);
        hillPage.shrinkButton.addEventListener(MouseEvent.CLICK, onShrinkButtonClick);
        hillPage.growButton.addEventListener(MouseEvent.CLICK, onGrowButtonClick);
    }
    //Event handlers
    function onHillButtonClick(event:MouseEvent):void
    {
        addChild(hillPage);
        removeChild(startPage);
    }
    function onLakeButtonClick(event:MouseEvent):void
    {
        addChild(lakePage);
        removeChild(startPage);
    }
    function onStartButtonClick_hill(event:MouseEvent):void
    {
        addChild(startPage);
        removeChild(hillPage);
    }
    function onStartButtonClick_lake(event:MouseEvent):void
    {
        addChild(startPage);
        removeChild(lakePage);
    }
    function onUpButtonClick(event:MouseEvent):void
    {
        hillPage.cat.y -=15
        if(hillPage.cat.y < 90)
        {
            hillPage.cat.y =90
        }
    }
    function onDownButtonClick(event:MouseEvent):void
    {
        hillPage.cat.y +=15
        if(hillPage.cat.y >190)
        {
            hillPage.cat.y =190
        }
    function onGrowButtonClick(event:MouseEvent):void
    {
        hillPage.cat.scaleX +=0.1;
        hillPage.cat.scaleY +=0.1;
    }
    function onShrinkButtonClick(event:MouseEvent):void
    {
        hillPage.cat.scaleX -=0.1;
        hillPage.cat.scaleY -=0.1;
    }
    
    
    }
}
}

Upvotes: 0

Views: 6749

Answers (1)

Alexei Levenkov
Alexei Levenkov

Reputation: 100527

You have previous function (function onDownButtonClick(event:MouseEvent):void) is missing closing }. As result onGrowButtonClick becomes inner function of onDownButtonClick and hence not visible outside.

Note: you put plenty of closing braces at the end so whole file actually have proper number of braces, just onGrowButtonClick and onShrinkButtonClick are inside onDownButtonClick. Your code is currently similar to:

function onDownButtonClick(event:MouseEvent):void
{
   function onGrowButtonClick() ...;
   function onShrinkButtonClick() ...;
}

Suggestion: find good text editor with brace matching. ActionScript is close to JavaScript - so finding good one for either would work.

Upvotes: 1

Related Questions