我學AS3,並創建一個簡單的「小行星」的遊戲。 我寫了一個簡單的類直線運動:AS3:一個行爲,許多對象
package {
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class lin extends MovieClip {
private var vx:Number=0;
private var vy:Number=0;
public function lin(x:Number,y:Number,sr:Number,spd:Number)
{
this.rotation=sr;
vy+=Math.sin(degToRad(sr))*spd;
vx+=Math.cos(degToRad(sr))*spd;
this.x=x+vx;
this.y=y+vy;
addEventListener(Event.ENTER_FRAME,loop,false,0,true);
}
public function loop(evt:Event)
{
y+=vy;
x+=vx;
if (outOfBounds())
kill();
}
public function outOfBounds():Boolean
{
return (x>stage.stageWidth || x<0 || y>stage.stageHeight || y<0);
}
public function kill():void
{
if(parent)
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,loop);
}
public function degToRad (deg:Number)
{
return deg * Math.PI/180;
}
}
}
,我需要運動的這種行爲設置爲若干個對象(激光光束,小行星) 我創建了類「激光光束」新的MovieClip,並寫了這個:
package {
import flash.display.MovieClip;
import flash.display.Stage;
import lin;
public class LaserBeam extends MovieClip {
public var LaserBeamInstance:lin;
public var LaserSPD=15;
public function LaserBeam(x,y,r) {
LaserBeamInstance=new lin(x,y,r,LaserSPD);
}
}
}
但是當我嘗試運行我的遊戲,它說:
Line 1 1203: No default constructor found in base class lin.
我應該怎麼做,使許多不同MovieCli ps分享一個行爲?
在此先感謝!
UPD:所有項目文件是here
BTW,你應該使用實例的類大寫字母和小寫字母。這是一個無處不在的標準。 – Pier
你也並不需要導入在同一個包中的類。你可以刪除'import lin'。 – Marty