2011-12-29 4 views
0

誰かがエラーを修正するために私を助けることができる:ERROR(1023:互換性のないオーバーライドして、1021:重複関数定義)

(1023: Incompatible override. AND 1021: Duplicate function definition)

私は3フラッシュアクションスクリプトに新たなんですだから私は本当にこれを修正する方法を知らない。

私はこのように書き、ゲームを作成しています:
私はを入力し、Enterキーを押した場合は「mouse2」である場合には、「pamatoは」行く必要があります。それはmouse2の指示に従うべきです。また、摩擦とスピードが必要です。

2つのエラーの原因は機能速度です。ここで

は、私がこれまで...あなたはイベントリスナーを追加している

var sb:Number = 0; 
var friction:Number = 0.0085; 
var speed:Number = .002; 
var path:Shape = new Shape(); 
addChild(path); 

pamato.addEventListener(MouseEvent.MOUSE_DOWN, t_startDrag); 
pamato.addEventListener(MouseEvent.MOUSE_UP, t_stopDrag); 
position.addEventListener(MouseEvent.MOUSE_UP, b_position); 
mouse.addEventListener(MouseEvent.MOUSE_UP, drawPath); 
speedBar.addEventListener(Event.ENTER_FRAME, speed); 
pamato.addEventListener(Event.ENTER_FRAME, moving); 

// dragging the pamato to its position 
function t_startDrag(event:Event):void 
{ 
    pamato.startDrag(); 
} 

function t_stopDrag(event:Event):void 
{ 
    pamato.stopDrag(); 

    if(pamato.hitTestObject(circle)) 
    { 
     pamato.x = 605; 
     pamato.y = 570; 
    } 
} 

// position button 
function b_position(event:Event):void 
{ 
    mouse.addEventListener(Event.ENTER_FRAME, cursor) 
    { 
      function cursor(e:Event):void 
     { 
      mouse.alpha = 9; 
      mouse.x = mouseX; 
      mouse.y = mouseY; 
     } 
    } 
} 

// path && mouse2 
function drawPath(event:Event):void 
{ 
    mouse2.x = mouse.x; 
    mouse2.y = mouse.y; 
    mouse2.alpha = 10; 

    path.graphics.clear(); 
    path.graphics.lineStyle(1,0xFFFFFF,100); 
    path.graphics.moveTo(pamato.x, pamato.y); 
    path.graphics.lineTo(mouse2.x, mouse2.y); 
} 

// speed bar 
function speed(event:Event):void 
{ 
    speedBar.scaleX = sb; 

    stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown) 
    { 
     function myKeyDown(e:KeyboardEvent):void 
     { 
      if (e.keyCode == Keyboard.SPACE) 
      { 
        sb += .0005; 

       if (sb > 1) 
       { 
        sb = 0; 
       } 
       } 
     } 
     } 
} 

// moving the pamato 
function moving(event:Event):void 
{ 
    stage.addEventListener(KeyboardEvent.KEY_DOWN, enterKey) 
    { 
      if (e.keyCode == Keyboard.ENTER) 
      { 
       var myRadians:Number = Math.atan2(mouse2.y-pamato.y, mouse2.x-pamato.x); 
       var myDegrees:Number = Math.round((myRadians*180/Math.PI)); 
       var yChange:Number = Math.round(mouse2.y-pamato.y); 
       var xChange:Number = Math.round(mouse2.y-pamato.y); 
       var yMove:Number = Math.round(yChange/20); 
       var xMove:Number = Math.round(xChange/20); 
       var yspeed:Number = yspeed + yMove; 
       var xspeed:Number = xspeed + xMove; 

       removeChild(holder); 
       mouse2.alpha = 0; 
       mouse.alpha = 0; 
       sb = 0; 
      } 

     } 

    xspeed *= friction; 
    yspeed *= friction; 
    y += yspeed; 
    x += xspeed; 
} 

答えて

0

やり方が間違って作られたコードです。このような特定の機能を呼び出して、次のいずれか

function speed(event:Event):void 
{ 
    stage.addEventListener(KeyboardEvent.KEY_DOWN, this._onKeyDown); 
} 

private function _onKeyDown(e:KeyboardEvent):void 
{ 
    // do something 
} 

またはこのような無名関数:それはあなたが削除することができますように、2つのうち

function speed(event:Event):void 
{ 
    stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent) 
     { 
      // this is the function block for the anon function 
      // do something 
     }); // end of add listener 
} 

、最初のバージョンは、それを行うための最良の方法です(イベントリスナーを削除しないと、オブジェクトがガベージコレクトされずにメモリリークが発生することを意味します)

まだ問題がある場合は、エラーが発生している可能性がありますテキスト、および問題のある行)

+0

私は別のエラーだった(1013年:private属性はクラスプロパティの定義でのみ使用することができるが): //スピードバー 機能速度(イベント:イベント):無効 { \tスピードバーここに私の変更されたコードです。 scaleX = sb; \t \t \t stage.addEventListener(KeyboardEvent.KEY_DOWN、this._onKeyDown); }プライベート関数_onKeyDown(E:れるKeyboardEvent):ボイド {\t \t IF(e.keyCode == Keyboard.SPACE) \t {\t \t SB + = 0.0005。 \t \t \t \t \t \t IF(SB> 1) \t \t { \t \t \t SB = 0。 \t \t} \t} } 私は間違ってそれを行って、考えて... :( また、あなたはFUNCTION移動を確認することができます..?私は思うので、それが問題の原因です。エラーは、いつ登場私はその機能を追加しました.... – jcAmats

+0

私はもともとAS2のゲームを作ったのですが、AS3に変換しようとしたときに乱雑です。 AS2でそのゲームを作ったときにはるかに簡単でした... – jcAmats

+0

これはですコードをもう一度.. '//スピードバー 機能速度(イベント:イベント):void { \t speedBar.scaleX = sb; \t \t \t stage.addEventListener(KeyboardEvent.KEY_DOWN、this._onKeyDown); }プライベート関数_onKeyDown(E:れるKeyboardEvent):ボイド {\t \t IF(e.keyCode == Keyboard.SPACE) \t {\t \t SB + = 0.0005。 \t \t \t \t \t \t IF(SB> 1) \t \t { \t \t \t SB = 0。 \t \t} } – jcAmats

関連する問題