2

私は、スターリングフレームワークに関するhemanthsharmaの優れたチュートリアルシリーズをフォローしています。私は多かれ少なかれ彼のコードをコピーし、私が考えているゲームに向けていくつかの変更を加えました。コードは彼が彼のプロジェクトで使用したものと80%同じです。それにもかかわらず、私は奇妙なエラーに遭遇しています。「エラー1067」は、おそらく無関係なタイプの「暗黙の強制」について不平を言います。

私は以前の質問を閲覧し、これを発見しました:

1067:タイプClassの値の無関係なタイプへの暗黙の強制flash.display:DisplayObject

私が受け取るエラーメッセージは基本的に同じですが、残念ながら解決策は私の問題には当てはまりません。さらに、多くの興味深いさまざまなフレーバーでこのエラーが発生しています。

  1. starling.events.Eventを展開するNavigationEventというカスタムイベントクラスがあります。使用者がゲーム画面を切り替えようとすると、このイベントがディスパッチされます。ここにいくつかのコードがあります:

    import starling.events.Event;
    
    public class NavigationEvent extends Event
    

    次のようにディスパッチされます。

    this.dispatchEvent(new NavigationEvent(NavigationEvent.CHANGE_SCREEN,{id:"play"},true));
    

    エラーメッセージには次のように書かれています。

    エラー1067:タイプevents:NavigationEventの値の無関係なタイプstarling.events:Eventへの暗黙の強制

    私が最初に書いたときはコードは正常に機能していましたが、プログラムの別の部分を変更した後、コードが壊れています。説明できません。starling.events.EventからNavigationEventを拡張したので、タイプは間違いなく無関係ではありません。私もこのようにプログラムを実行しました。確かに、画面を切り替えるルーチンはまだ実装されていませんが、イベントは問題なく発生しました。

  2. ユーザーがこのイベントをトリガーできるようにするために、画面にボタンを追加しました。ムクドリの定番starling.display.Button;です。ボタンは私の画面クラスのメンバー変数です

    private var playBtn:Button;
    

    ただし、この行はエラーになります。

    playBtn=new Button(Assets.getAtlas().getTexture("play"));
    

    今回のエラーはさらに法外です。

    エラー1067:タイプstarling.textures:Textureから無関係なタイプstarling.textures:Textureへの値の暗黙の強制

これについて私は何ができますか?

4

1 に答える 1

3

FlashBuilderで2つのFlashProプロジェクトを開いていて、両方のプロジェクトのコードパスに同じディレクトリがある場合、発生したエラーが発生することがあります。これは、プロジェクトの1つでファイルを開いているが、両方のプロジェクトをコンパイルして実行している場合に発生します(特に、デバッグしていてブレークポイントを設定している場合)。

私が起こっていると思うのは、FBは、ファイルが開いているファイルから「到達」し、参照されているが開いていないファイルにコンパイルされているため、別のファイルであるのように同じファイルでコンパイルされるということです。 。開いているファイルはプロジェクトの基本クラスを拡張しますが、fla/xflを含むプロジェクトの基本クラスは拡張しません。実際には1つのファイルであることがわかっていますが、FBはそれを理解できないようです私はこれを解決するために過去に本当に英雄的な措置をとらなければならなかったので、あなたは本当に軽く降りたと思います。

共有コードをライブラリプロジェクトに移動することで、これを解決できる可能性があります。これは、エンジニアがおそらく誰もが行うと考えていたシナリオだと思います。彼らは、歴史的なFlash開発慣行と、この特定のバグが発生する原因となるFBとFPを一緒に使用するという癖の交差点を予測できなかった(または少なくとも予測しなかった)と思います。

于 2012-11-03T21:28:17.347 に答える