Introduction

Flash is a lightweight cross-platform runtime for rich media, enterprise applications and mobile applications, as well as an integrated development environment. Flash can be programmed in ActionScript 1/2/3.

Friday, November 28th, 2003 at 4:53 pm

The Graphic, Picture and AttachedObjectClass

A added a few classes to my VisibleObject-Project. A Graphic, a Picture and an AttachedObject-Class. They aren’t ducumented yet.

The Graphic-Class:

import asset.Size;

class Graphic extends VisibleObject{
        public var type:String = “Graphic“;

        private var size:Size;

        public var resize:Function;

        public var width:Number;
        public var height:Number;

        public var setSize:Function;
        public var getSize:Function;

        private var defineWidth:Function;
        private var defineHeight:Function;

        public function Graphic(Void){
                size = new Size();
        }
        public function create(Void):Void{
                super.create();
                if(size.width == null) defineWidth();
                if(size.width == null) defineHeight();
        }
}

The Picture-Class:

class Picture extends Graphic/*, VisibleComposite*/{// the first problem [multiple inheritance]
        public var type:String = “Picture“;

        public var composite:VisibleComposite;

        public function Picture(Void){
                composite = new VisibleComposite();
        }
        public function draw(Void):Void{
                composite.draw();
                resize();
                mc._visible = true;
        }
        public function clear(Void):Void{
                mc._visible = false;
        }
        public function resize(Void):Void{
                mc._width = size.width;
                mc._height = size.height;
        }

        public function set width(aWidth:Number):Void{
                size.width = aWidth;
        }
        public function get width():Number{
                return size.width;
        }
        public function set height(aHeight:Number):Void{
                size.height = aHeight;
        }
        public function get height():Number{
                return size.height;
        }

        public function setSize(aWidth:Number, aHeight:Number):Void{
                size.width = aWidth;
                size.height = aHeight;
        }
        public function getSize(Void):Object{
                return size;
        }

        public function addGraphic(aChild:Graphic):Number{
                return composite.addChild(aChild);
        }
        public function removeGraphic(aChild:Graphic):Void{
                composite.removeChild(aChild);
        }
        public function removeGraphicByNumber(aNumber:Number):Void{
                composite.removeChildByNumber(aNumber);
        }
        public function getGraphicByNumber(aNumber:Number)/*:Graphic*/{// damn the second problem [type mismatch]
                return composite.getChildByNumber(aNumber);
        }
        public function getGraphicsTotal(Void):Number{
                return composite.getChildsTotal();
        }

        private function defineWidth(Void):Void{
                size.width = mc._width;
        }
        private function defineHeight(Void):Void{
                size.height = mc._height;
        }

        private function createMatrix(Void):Void{
                composite.setContainer(mc);
                composite.create();
        }
}

The AttachedObject-Class:

import asset.Size;

class AttachedObject extends Graphic{
        public var type:String = “AttachedObject“;

        public function AttachedObject(Void){
        }
        public function draw(Void):Void{
                resize();
                mc._visible = true;
        }
        public function clear(Void):Void{
                mc._visible = false;
        }
        public function resize(Void):Void{
                mc._width = size.width;
                mc._height = size.height;
        }

        public function set width(aWidth:Number):Void{
                size.width = aWidth;
        }
        public function get width():Number{
                return size.width;
        }
        public function set height(aHeight:Number):Void{
                size.height = aHeight;
        }
        public function get height():Number{
                return size.height;
        }

        public function setSize(aWidth:Number, aHeight:Number):Void{
                size.width = aWidth;
                size.height = aHeight;
        }
        public function getSize(Void):Size{
                return size;
        }

        private function defineWidth(Void):Void{
                size.width = mc._width;
        }
        private function defineHeight(Void):Void{
                size.height = mc._height;
        }
}