私はこの奇妙な問題を抱えており、私はそれを理解できません。 私はキャラクターの座標を取得するためにlocalToGlobalを使用しており、レベルクリップでヒットテストポイントを実行しています。 Flash Player 10.1ではすべてがうまく動作します。 r52Flash Programming Local To Global問題
しかし、私は、フラッシュプレーヤー10.0 r22を実行している他のマシンで全く同じ.swfを開き、ヒットテストはうまくいきません。私は両親などをトレースし、すべてを試み
セットアップ:
メインクラス、私はゲームのクラス(スプライト)を追加し、メインクラスに。 ゲームクラスでは、レベルクラス(スプライト)とキャラクタークラス(スプライト)を追加します。
「カメラ」がキャラクターに続き、ゲームクラスが移動します。
ので
メイン(静的X & Y)> ゲーム(ダイナミックX & Y)> レベル(静的X & y)は&文字(ダイナミックX & y)の これは私のコードです:
private function checkLanded():Boolean
{//this code runs on the character class, so 'this' = character
var localPoint:Point = new Point(this.x, this.y + this.myHeight/2 + 1);
var globalPoint:Point = parent.localToGlobal(localPoint)
if (Settings.levelGround.hitTestPoint(globalPoint.x,globalPoint.y,true) || Settings.levelPlatforms.hitTestPoint(globalPoint.x,globalPoint.y,true))
{
return true;
}
return false;
}
このコードは、Flash Player 10.1では完全に動作しますが、10.0では動作しません。 10.0では、parent.globalToLocalを使用する代わりに、parent.parent.globalT o 10.0.1ではなく10.0で動作するLocal。
このコードをすべてのFlash Playerで実行するにはどうすればよいですか。
* * edit- 私はそれを固定して、何とかフラッシュ座標系を妨げたメインクラスのarroundを動かしました。私はその後、ゲームクラスのarroundを移動しようとし、それは動作するようです。メインクラスarroundのdoesntの仕事を動かす理由はまだ迷って...
が私を助けてください、事前に
おかげで、
エリックSombroek
なぜあなたは親を全く使用していますか? CharacterがSpriteの子孫である場合、それ自体は 'localToGlobal'を持ちます。 – shanethehat
@shanethehatはい、私も知っていますが、使用しても var globalPoint:ポイント= this.localToGlobal(新しいポイント(0,0))私は同じ結果を持っています – Erik
コメントでコードをハイライトするためにバッククイックを使うことができます:) – shanethehat