У меня странная проблема, и я просто не могу ее решить.
Я использую localToGlobal, чтобы получить координаты для моего персонажа и сделать контрольную точку для клипа уровня. Все отлично работает во флеш плеере 10.1. r52
Но затем я открываю тот же самый .swf на другом компьютере, на котором установлен флэш-плеер 10.0 r22, и тестирование не работает. Я все перепробовал, отслеживая родителей и т. Д.
Настройка:
Main Class, в Main Class я добавляю класс Game (Sprite).
В класс игры я добавляю класс уровня (спрайт) и класс персонажа (спрайт)
«камера» следует за персонажем, а класс Game перемещается вокруг.
So
Main (статический 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.globalToLocal, который работает в 10.0, а не в 10.1.
Как я могу убедиться, что этот код будет работать во всех флеш-плеерах.
** Edit-
Я исправил это, я переместил основной класс вокруг, что каким-то образом нарушило систему координат вспышки. Затем я попытался переместить игровой класс по кругу, и это, похоже, сработало. Все еще задаюсь вопросом, почему перемещение основного класса arround не работает ..
Пожалуйста, помогите мне,
Заранее спасибо,
Эрик Сомбрук