1

AS3用のPhysicsEngineで遊んでいます。以下のコードは、基本的にhelloworldの例です。ただし、クラス定義の先頭でプロパティ「ball」をWheelParticleとして宣言することにより、わずかな変更を加えました。(間違っている場合は私の用語を許してください)。以前は、コンストラクター内で次のように宣言されていました

var ball:WheelParticle = new WheelParticle(...);

そしてそれはうまくいきました。しかし今、私のやり方で試してみるとエラーが発生します

タイプorg.cove.ape.WheelParticleの値の無関係なタイプへの暗黙の強制クラス| ball:WheelParticle =new...など

「クラスWheelParticleへの不正な割り当て」

ですから、私の宣言public var ball:WheelParticleは別のものにすべきだと思います。しかし、何ですか?

とにかく、ここにコードがあります。かなり短いです。ドキュメントを参照しますが、ありません。とにかく見つけることができるものはありません。

パッケージ{

    import org.cove.ape.*;
    import flash.events.*;
    import flash.display.Sprite;    

    public class Bounce extends Sprite {

         public var ball:WheelParticle;

    public function Bounce() {

        stage.focus = this;
        stage.frameRate = 100;
        addEventListener(Event.ENTER_FRAME, run);

        stage.addEventListener(KeyboardEvent.KEY_DOWN, moveLeft);

        APEngine.init(0.3);
        APEngine.container = this;
        APEngine.addMasslessForce(new Vector(0,2));

        var defaultGroup:Group = new Group();
        defaultGroup.collideInternal = true;

        var ball:WheelParticle = new WheelParticle(250,10,40, false, 1, 0.7, 0.1);
        defaultGroup.addParticle(ball);

        var rp:RectangleParticle = new RectangleParticle(250,300,300,50,0,true);
        defaultGroup.addParticle(rp);


        APEngine.addGroup(defaultGroup);
      }

      private function moveLeft(e:Event):void{
          ball.speed += 1;
    }

      private function run(evt:Event):void {
         APEngine.step();
         APEngine.paint();
      }
   }

}

4

1 に答える 1

2

WheelParticleクラスを(必要な他のすべてのクラスとともに)次のように明示的にインポートします。

package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;

import org.cove.ape.APEngine;
import org.cove.ape.Group;
import org.cove.ape.RectangleParticle;
import org.cove.ape.Vector;
import org.cove.ape.WheelParticle;

    public class Bounce extends Sprite {

その不足しているインポートが、エラーの原因である可能性が最も高いです。また、サンプル コードには小さな不具合があることに注意してください。

 public class Bounce extends Sprite {

     public var ball:WheelParticle;

というBounce型のクラスのメンバー変数を宣言します。WheelParticleball

var ball:WheelParticle = new WheelParticle(250,10,40, false, 1, 0.7, 0.1);

同じ型と同じ名前で別の変数を作成しますが、のコンストラクタに対してローカルですBounce。そして、これは前者に影を落としています。メンバー変数を使用する場合は、次を使用します。

ball = new WheelParticle(250,10,40, false, 1, 0.7, 0.1);
于 2009-03-13T17:47:37.010 に答える