2013-02-27 86 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