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

How to inherit base class properties ?

Guest
Mar 26, 2012 Mar 26, 2012

Copy link to clipboard

Copied

Hi All,

I have one doubt.Can anyone clear this doubt?

Steps:

1)I have created One movieClip & named as MyComp

2)I export this movieclip to actionscript.Class name for this movieclip is MyComp.

3)After that,Dynamically I have created 5 instance for this class & added to stage.

4)Now i need to change width of MyComp. it should reflect on previous 5 instance too.

I tried like,

I have created MyComp.as file in same location. There I tried to inherite DisplayObject properties Width.

Example :

In authoring time,I have one movieclip in my library which contains one rectangle shape..Im adding 5 instance of that movieclip in stage.

After that i get into one movieclip,and im increasing width of that movieclip by increasing Shape width. it ll get reflect in all instance..

i need this thing in actionscript.... is it possible?

Thanks...

TOPICS
ActionScript

Views

454

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

correct answers 1 Correct answer

Advocate , Mar 26, 2012 Mar 26, 2012

you can't do what you are trying to do the way you are trying to do it.

I have included some code here (pure AS3, no timeline or library) which you might be able to adapt to your needs

Basically I have created a static property (_rectWidth which controls the rectangles width) on the MovieClip class that contains the rectangle and a render() function that redraws the rectangle tot he correct width. Note you will have to call render() after setting a new width to see the rectangle drawn at the new 

...

Votes

Translate

Translate
Advocate ,
Mar 26, 2012 Mar 26, 2012

Copy link to clipboard

Copied

you can't do what you are trying to do the way you are trying to do it.

I have included some code here (pure AS3, no timeline or library) which you might be able to adapt to your needs

Basically I have created a static property (_rectWidth which controls the rectangles width) on the MovieClip class that contains the rectangle and a render() function that redraws the rectangle tot he correct width. Note you will have to call render() after setting a new width to see the rectangle drawn at the new  width.

Then in the main class I create 5 rectangles with random colours and positions.

The main class also listens for the "arrow up" and "arrow down" keys to change the rectangle's size. Note: I change the size of the rectangle and then run through all of the Main classes children (which are all RectMC's) and call render();

package

{

          import flash.display.Sprite;

          import flash.events.Event;

          import flash.events.KeyboardEvent;

          public class Main extends Sprite

          {

                    public function Main():void

                    {

                              if (stage) init();

                              else addEventListener(Event.ADDED_TO_STAGE, init);

                    }

                    private function init(e:Event = null):void

                    {

                              removeEventListener(Event.ADDED_TO_STAGE, init);

                              // entry point

                              for (var i:int = 0; i < 5; i++)

                              {

                                        var col:uint = Math.floor(Math.random() * 0xffffff);

                                        var rectX:int = Math.floor(Math.random() * stage.stageWidth);

                                        var rectY:int = Math.floor(Math.random() * stage.stageHeight);

                                        var rectMC:RectMC = new RectMC(col);

                                        rectMC.x = rectX;

                                        rectMC.y = rectY;

                                        addChild(rectMC);

                              }

                              stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);

                    }

                    private function onKeyDown(e:KeyboardEvent):void

                    {

                              switch (e.keyCode)

                              {

                                        case 38:

                                                  RectMC.rectWidth += 20;

                                                  break;

                                        case 40:

                                                  RectMC.rectWidth -= 20;

                                                  break;

                              }

                              for (var i:int = 0; i < numChildren; i++)

                              {

                                        var rectMC:RectMC = getChildAt(i) as RectMC;

                                        rectMC.render();

                              }

                    }

          }

}

package 

{

          import flash.display.MovieClip;

          import flash.events.Event;

          /**

           * ...

           * @author steven O'Boyle

           */

          public class RectMC extends MovieClip

          {

                    protected static var _rectWidth:int = 100;

                    protected static var _rectHeight:int = 50;

                    protected var _rectColour:uint;

                    public function RectMC(col:uint)

                    {

                              _rectColour = col;

                              render();

                    }

                    public function render():void

                    {

                              graphics.clear();

                              graphics.beginFill(_rectColour);

                              graphics.drawRect(0, 0, _rectWidth, _rectHeight);

                              graphics.endFill();

                    }

                    public static function set rectWidth(value:int):void

                    {

                              _rectWidth = value;

                    }

                    public static function get rectWidth():int

                    {

                              return _rectWidth;

                    }

          }

}

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
Guest
Mar 26, 2012 Mar 26, 2012

Copy link to clipboard

Copied

LATEST

Thanks for ur valuable reply...

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