barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 2 ноября 2012 г.

away3d 4.0: view.camera.project() и инициализация сцены

Столкнулся с непонятной для меня особенностью away3d 4.0: если использовать метод  view.camera.project() для проецирования 3D-точки в 2D-плоскость экрана в конструкторе основного спрайта флешки, или же в обработчике его события Event.ADDED_TO_STAGE, проецирование выполняется неверно (по крайней мере, оно не совпадает с последующими попытками спроецировать ту же точку). Тоже поведение наблюдается и при использовании метода в обработчике Event.ENTER_FRAME при его первых 3-4 срабатываниях. 
Описанное выше поведение я замечаю при использовании линзы OrthographicLens, а ошибка проецирования заключается в сжатии проекции по оси Ox.
Как оказалось, на линзе возникает событие LensEvent.MATRIX_CHANGED, до которого проецирование неверное, а после которого становится верным. Поэтому, если после инициализации флешки есть необходимость спроецировать какую-либо 3d-точку с использованием камеры, нужно дождаться сначала срабатывания события LensEvent.MATRIX_CHANGED.

Комментариев нет:

Отправить комментарий