Your trying to access the properties width and heigh from a static
function getArea. The problem is a static function is designed to
handle class wide properties and width and height are local to each
insttance of the class. The compiler won't allow it. Remove the static
from the function definition, I don't see why they would be needed
there anyway.

On 3/27/06, CK <[EMAIL PROTECTED]> wrote:
> Hi,
>
> In the following code: I'm getting the following "static" from the
> ouput window:
> **Error** /Users/user/Desktop/code/oop_review/BOX/Box.as: Line 34:
> Instance variables cannot be accessed in static functions.
>                 return width*height;
>
> Total ActionScript Errors: 1     Reported Errors: 1
>
> How could I access these instance variables from within this private
> static method? Is it advisable using Private Static? Would I have to
> create an instance of the class then access the properties?
>
>
>
> //AS
> class Box {
>         //accessing a static property through a method.
>         //The box class, with methods to set and retreive the
>         //value of the class property, numSides.
>         //
>         //The class property numSides
>         private static var numSides:Number = 4;
>         //
>         private var width:Number;
>         private var height:Number;
>         private var area:Number;
>         //
>         //all CAPS denotes constants, values that never change.
>         private static var DEFAULT_WIDTH:Number = 30;
>         private static var DEFAULT_HEIGHT:Number = 20;
>         //
>         public static var maxWidth = 250;
>         public static var maxHeight = 250;
>         //
>         //The constructor function.
>         public function Box(w:Number, h:Number) {
>                 if (w == undefined) {
>                         w = DEFAULT_WIDTH;
>                 }
>                 if (h == undefined) {
>                         h = DEFAULT_HEIGHT;
>                 }
>                 width = w;
>                 height = h;
>                 //initialize area. This is perfectly legal within a 
> constructor
>                 //area = width*height;
>         }
>         private static function getArea():Number {
>                 return width*height;
>         }
>         //Method for setting numSides.
>         public function setNumSides(newNumSides:Number):Void {
>                 numSides = newNumSides;
>         }
>         //Method for getting numSides.
>         public function getNumSides():Number {
>                 return numSides;
>         }
>         //Accessor to retreive width
>         public function getWidth():Number {
>                 return width;
>         }
>         //Accessor to assign width
>         public function setWidth(w:Number):Void {
>                 width = w;
>         }
>         //Accessor to retreive height
>         public function getHeight():Number {
>                 return height;
>         }
>         //Accessor to set height
>         public function setHeight(h:Number):Void {
>                 height = h;
>         }
>         //reset the dimensions
>         public function resetDimensions():Void {
>                 height = 1;
>                 width = 1;
>                 trace("Dimensions reset !");
>         }
>         public function onMouseDown():Void {
>                 resetDimensions();
>         }
>         public function enableReset():Void {
>                 Mouse.addListener(this);
>         }
>         public function disableReset():Void {
>                 Mouse.removeListener(this);
>         }
>         //this gurantees a safe means of deleting its instances.
>         public function die():Void {
>                 disableReset();
>                 //Unregister the object so the Mouse class
>                 //deletes the reference to it.
>         }
> }
> //End AS
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>


--
Weldon Mac Donald
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to