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...
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
...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;
}
}
}
Copy link to clipboard
Copied
Thanks for ur valuable reply...