2013-02-27 89 views
0
package 
    { 
include flash.events.* //1084: Syntax error: expecting stringliteral before flash. 
include flash.ui.* 

public class tank() //1068: Unable to open included file: /Volumes/scottthreet/Documents/FLASH/tankdrive/leftbrace. 1084: Syntax error: expecting rightbrace before leftbrace. 
    this.addEventListener(Event.ENTER_FRAME, update); 
    stage.addEventListener(KeyBoardEvent.KEY_DOWN, onKeyDown); 
    stage.addEventListener(KeyBoardEvent.KEY_UP, onKeyUp); 

    var keys:Array = []; 

    function update(e:Event):void 
    { 
     var rotang:Int = 0; 
     var speed:Int; 
     if(keys[Key.I]) 
     { 
      rotang = rotang + 1; 
     } 
     if(keys[Key.J]) 
     { 
      rotang = rotang - 1; 
     } 
     if(keys[Key.W]) 
     { 
      rotang = rotang - 1; 
     } 
     if(speed > 0) 
     { 
      speed = speed - 1; 
     } 
     if(speed < 0) 
     { 
      speed = speed + 1; 
     } 
     if(keys[Key.S]) 
     { 
      rotang = rotang + 1; 
     } 
     if(keys[Key.I] && keys[Key.W]) 
     { 
      speed = speed + 3; 
     } 
     if(keys[Key.K] && keys[Key.S]) 
     { 
      speed = speed - 3; 
     } 
     if(speed > 30) 
     { 
      speed = 30; 
     } 
     if(speed < -30) 
     { 
      speed = -30; 
     } 
     public function degreesToRadians(param1:Number) : Number 
     { 
      return param1 * Math.PI/180; 
     } 
     this.vy += Math.sin(this.degreesToRadians(rotang)) *speed; 
     this.vx += Math.cos(this.degreesToRadians(rotang))*speed; 
     this.y = tank.y + tank.vy; 
     this.x = tank.x + tank.vx; 
     this.rotation = rotang * Math.PI/180; 
    } 

    function onKeyDown(e:Event):void 
    { 
     keys[e.keyCode] = true; 
    } 

    function onKeyUp(e:Event):void 
    { 
     keys[e.keyCode] = false; 
    } 

} 
    } 

評論是這裏也有我的錯誤,我不明白什麼是錯的......我已經通過谷歌搜索的錯誤,只是其他形式的錯誤...基本AS3語法/錯誤

一無所獲

任何人都有一些基本的例子as3代碼?出於某種原因,它希望我添加細節;沒有太多的細節要添加...

回答

2

首先,檢查你的代碼是在類(.as)還是fla。 ActionScript 3.0基於類和基於腳本的語言。在.fla中只有可用的腳本。你曾經寫過fla?如果對你必須。至於寫

AS3類包括語法不是include,但import

include flash.events.* - >import flash.events.*

課堂您function()語法將範圍限定爲默認命名空間:內部。它在這個包之外是不可見的。設置以適應您的功能目的。

function bar();意味着internal function bar();

  • 公共訪問修飾符允許每個類別的訪問
  • 內部訪問修飾符允許類分享這個包訪問
  • 保護訪問修飾符允許子類訪問
  • 私人訪問修飾符允許外部訪問

而且構造是必須相同。至於文件名如下:

// MyClass.as

package 
{ 
    import flash.display.Sprite; 
    public class MyClass extends Sprite 
    { 
     public function MyClass() 
     { 

     } 
    } 
} 

這裏是樣品類球。

//Ball.as

package 
{ 
    import flash.display.Sprite; 

    public class Ball extends Sprite 
    { 
     private var _color:uint; 
     private var _radius:Number; 
     private var _vx:Number = 0; 
     private var _vy:Number = 0; 

     public function Ball(radius:Number, color:uint = 0xffffff) 
     { 
      _radius = radius; 
      _color = color; 
      draw(); 
     } 

     private function draw():void 
     { 
      graphics.clear(); 
      graphics.lineStyle(0); 
      graphics.beginFill(_color, 1); 
      graphics.drawCircle(0, 0, _radius); 
      graphics.endFill(); 
      graphics.drawCircle(0, 0, 1); 
     } 

     public function update():void 
     { 
      x += _vx; 
      y += _vy; 
     } 

     public function set color(value:uint):void 
     { 
      _color = value; 
      draw(); 
     } 

     public function get color():uint 
     { 
      return _color; 
     } 

     public function set radius(value:Number):void 
     { 
      _radius = value; 
      draw(); 
     } 

     public function get radius():Number 
     { 
      return _radius; 
     } 

     public function set vx(value:Number):void 
     { 
      _vx = value; 
     } 

     public function get vx():Number 
     { 
      return _vx; 
     } 

     public function set vy(value:Number):void 
     { 
      _vy = value; 
     } 

     public function get vy():Number 
     { 
      return _vy; 
     } 

    } 
} 

如果你想在Flash中使用,你的FLA文件和文件Ball.as位於同一目錄中。

,如果你想在Flash Builder中,位於同一src目錄Ball.as文件使用運行此腳本

var ball:Ball = new Ball(10,0x0000ff); 
addChild(ball); 

並建立這個類。如果你創建一個項目,自動創建同名的類。 EX)MyClass的

//MyClass.as

package { 

    import flash.display.Sprite; 

     public class MyClass extends Sprite 
     { 
      public function MyClass() 
      { 

       var ball:Ball = new Ball(10,0xff0000); 
       ball.x = 10; 
       ball.y = 10; 
       addChild(ball); 
      } 

     } 
} 

package blah.blah { }意味着你的工作目錄或文件SRC相對路徑。例如,import flash.display.Sprite按以下語法打包:package flash.display.sprite。在Flash中,也許Flash Builder已經設置了ActionScript 3.0公共類。已經連接,所以它可以從任何文件夾,我們會。如果您想要此設置檢查,請參閱File-ActionScript Settings - Library path。默認路徑如下:$(AppConfig)/ActionScript 3.0/libs.

+0

謝謝;閱讀後它是一個體面的縮短版本:「在課堂上使用公共和導入!=包括」?還有什麼了整個包的東西?編輯:公衆=全球? – theHeretic 2013-02-27 05:22:00

+0

哦;沒有意識到它昨晚,但感謝基本的語法代碼的東西,如果我再次提出這些惱人的錯誤,我會先檢查這一點。 – theHeretic 2013-02-27 14:55:34