2013-02-27 9 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는 스크립트에서만 사용할 수 있습니다. 당신은 플로라에서 글을 쓴 적이 있습니까? 바로 당신이 .as로 작성해야하는 경우

AS3 클래스 구문 include 아니라 포함 import

include flash.events.* - 클래스>import flash.events.*

당신의 function() 구문이 기본 네임 스페이스로 범위가됩니다 내부. 이 패키지 외부에는 보이지 않습니다. 귀하의 기능 목적에 맞는 설정.

function bar();internal function bar();

  • 공공 액세스 한정자는
  • 내부 액세스 한정자는 클래스가
  • 보호 액세스 한정자는 서브 클래스가
  • 에 액세스 할 수 있습니다이 패키지 액세스를 공유 할 수있는 모든 클래스 액세스 할 수 있습니다 의미
  • 개인 액세스 한정자는 외부 액세스

을 허용하지 않습니다 그리고 생성자는 다음과 같은 필수 동일이 .as 파일 이름입니다 :

// 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; 
     } 

    } 
} 

당신이 플래시에를 사용하여 원하는 경우 .FLA 파일과 Ball.as 파일 위치 같은 디렉토리.

그리고 당신은 플래시 빌더, 당신의 src 폴더와 동일한 위치 Ball.as 파일에서를 사용하려면이 스크립트

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

를 실행합니다.

그리고이 클래스를 빌드하십시오. 프로젝트를 만들면 같은 이름의 클래스가 자동으로 생성됩니다. 예) 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

+0

아. 어제 밤에 그것을 깨닫지 못했지만 기본 문법 코드 물건에 대한 감사합니다, 만약 내가 다시이 성가신 오류와 함께 올라 오면 내가 먼저 이것을 확인합니다. – theHeretic