1

Haxe 3.2.1 を実行しています。

HaxeFlixel の内部にアクセスする必要がある特別なものを作成していたので、必要な関数の上にこれを追加しました。

@:access(flixel.FlxG.keys)

override update()これは、FlxStateサブクラスのコンテキストで機能しました。

次に、このコードをより高いレベルに移動したいと考えました[1]。そこで、新しいクラス (何かのサブクラスではない) を作成し、代わりに新しいクラスの関数にコードを配置し、 to を新しい関数の上に移動し@:accessました。

と言って、新しいクラスはコンパイルされませんCannot access private field playback。以前に作業していたのと同じ@:accessメタデータを持っているのに、これはなぜですか?

[1] つまり、サブクラスがサブステートを開いたFlxG.signals.preUpdate場合にも実行されるように、経由で呼び出されます。サブステートは通常、親ステートを一時停止します(これはまだやりたいことです)。FlxStateupdate()

4

1 に答える 1

1

「以前はどうだったかわからない」部門の場合:

() でメンバーを直接使用しないでください@:access。代わりに、クラスの型を使用してください。この場合、FlxG.keysは であるFlxKeyboardため、次のように動作します。

@:access(flixel.input.keyboard.FlxKeyboard)
于 2016-04-19T05:02:30.603 に答える