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

まず、コードがclass(.as)またはflaにあることを確認します。ActionScript3.0クラスベースおよびスクリプトベースの言語。.flaでは、使用可能なスクリプトのみです。あなたは今までにflaで書いたことがありますか?正しい場合は、.asで記述する必要があります

As3クラスインクルード構文はではありませんincludeが、import

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

クラスでは、function()構文のスコープはデフォルトの名前空間internalになります。このパッケージの外では表示されません。機能の目的に合わせた設定。

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ファイルが同じディレクトリにあります。

そして、このスクリプトを実行します

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

Flash Builderで使用する場合は、srcフォルダーと同じBall.asファイルを使用します。

そして、このクラスを構築します。プロジェクトを作成すると、同じ名前のクラスが自動的に作成されます。例)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では、FlashBuilderのActionScript3.0共通クラスもすでに設定されている可能性があります。すでにリンクしているので、どのフォルダからでも利用できます。この設定チェックが必要な場合は、を参照してくださいFile-ActionScript Settings - Library path。デフォルトのパスは次のとおりです。$(AppConfig)/ActionScript 3.0/libs.

于 2013-02-27T02:05:45.510 に答える