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代码?出于某种原因,它希望我添加细节;要添加的细节不多......
答案 0 :(得分:2)
首先,检查您的代码是否在类(.as)或fla中。 ActionScript 3.0基于类和基于脚本的语言。在.fla只是可用的脚本。你曾写过fla?如果正确,你必须用.as
写 As3 Class include语法不是include
,而是import
include flash.events.*
- &gt; import flash.events.*
在Class中,您的function()
语法将限定为默认命名空间:internal。它不会在此包装外面看到。设置适合您的功能目的。
function bar();
表示internal function bar();
- 公开访问修饰符允许每个类访问
- 内部访问修饰符允许共享此包访问权限的类
- 受保护访问修饰符允许子类访问
- 私有访问修饰符不允许外部访问
构造函数必须相同.as filename如下:
// MyClass.as
package
{
import flash.display.Sprite;
public class MyClass extends Sprite
{
public function MyClass()
{
}
}
}
这是Sample Class Ball。
// 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文件位于同一目录。
并运行此脚本
var ball:Ball = new Ball(10,0x0000ff);
addChild(ball);
如果您想在Flash Builder中使用,Ball.as文件与您的src文件夹相同。
构建此类。如果您创建一个Project,则会自动创建同名Class。 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构建器ActionScript 3.0公共类。已经连接,所以它可以从任何文件夹中获得,我们会。如果要进行此设置检查,请参阅File-ActionScript Settings - Library path
。默认路径如下:$(AppConfig)/ActionScript 3.0/libs.