Flash编写类及外部as文件的方式

2019-10-08 17:22:54于海丽

_circle.addEventListener(MouseEvent.MOUSE_UP,onUp);

}


private function onClick(event:MouseEvent):void{
trace("circle clicked");
}
private function onDown(event:MouseEvent):void{
_circle.startDrag();
}
private function onUp(event:MouseEvent):void{
_circle.stopDrag();
}
}
}

注意Drag_circle.as类,我们只是增加了一段:
代码:

_circle = new Sprite();
_circle.graphics.beginFill(0xff0000);
_circle.graphics.drawCircle(-5, -5, 10);
_circle.graphics.endFill();


还有就是构造函数之前的声明:private var _circle:Sprite;
测试你的影片。当然这里我们绘制的只是一个无渐变的红色园形。
Package Class
一般来说,一个.as文件中就一个类,但是在AS3中,现在允许在一个文件中定义多个类用来辅助主类。
在.as文件中的辅助类,必须定义在类包以外,并且只针对此文件中的主类和其他辅助类可见。它的基本结构如下:
代码:

package {
class MyClass {
function MyClass() {
var helper:MyHelper = new MyHelper();
}
}
}
class MyHelper {
function MyHelper() {
var helper:HelpersHelper = new HelpersHelper();
}
}
class HelpersHelper {
function HelpersHelper () {
}
}

注意,在包块中最多只能定义一个类。在同一个文件中的辅助类不是包块的一部分,并且只能在此文件中可见和被使用。
下面我们将我们将我们的类改写成上述的packge类形式。我们将下面的代码都写在一个DocumentClass.as的文件中,然后在fla文件中的属性面板中的Document Class输入框中输入DocumentClass类名。
代码:

package {

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

// Document Class
public class DocumentClass extends MovieClip {

private var _circle:Drag_circle;
private const maxBalls:int = 100;

public function DocumentClass(){
var i:int;
for(i=0;i<=maxBalls; i ){
_circle = new Drag_circle();

_circle.scaleY = _circle.scaleX = Math.random();

_circle.x= Math.round(Math.random()*(stage.stageWidth - _circle.width));
_circle.y= Math.round(Math.random()*(stage.stageHeight - _circle.height));

addChild(_circle);
}
}
}

public class Drag_circle extends Sprite {

private var _circle:Sprite;

public function Drag_circle(){

_circle = new Sprite();
_circle.graphics.beginFill(0x6D6E71);
_circle.graphics.drawCircle(-5, -5, 10);
_circle.graphics.endFill();

addChild(_circle);

this.buttonMode = true;