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 代码吗?出于某种原因,它希望我添加细节;没有太多要补充的细节...

4

1 回答 1

2

首先,检查您的代码是否在类(.as)或 fla 中。ActionScript 3.0 基于类和基于脚本的语言。在 .fla 中只有可用的脚本。你曾经用fla写过吗?如果正确,你必须写成 .as

As3 类包含语法不是include,但是import

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

在 Class 中,您的function()语法将被限定为默认命名空间:internal。它在这个包之外是不可见的。适合您的功能目的的设置。

function bar();方法internal function bar();

  • 公共访问修饰符允许每个类访问
  • internal访问修饰符允许共享此包访问的类
  • protected访问修饰符允许子类访问
  • 私有访问修饰符不允许外部访问

并且构造函数必须与 .as 文件名相同,如下所示:

// MyClass.as

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

       }
  }
}

这是示例类球。

//球.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 文件位于同一目录。

并运行这个脚本

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

如果您想在 Flash Builder 中使用 Ball.as 文件,该文件位于您的 src 文件夹中。

并建立这个类。如果你做一个项目,会自动创建同名的类。例如)我的班级

//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.

于 2013-02-27T02:05:45.510 回答