Показать сообщение отдельно
Старый 16.08.2017, 01:10
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию БАГ с изменением размеров окна

Не знаю баг это или нет, или может лыжи не едут, но вот простая закономерность :

И так подписались на ресайз.

Код AS3:
public function onResize(e:Event = null) {
var n:Number = Config.TABLE_SCALE;
 
stage.nativeWindow.height = stage.nativeWindow.width / n;
 
this.width = stage.nativeWindow.width - 16;
this.height = stage.nativeWindow.height - 39;
}
Вроде как работает. Теперь пробуем сделать это мануально

Код AS3:
someWindow.nativeWindow.width = someWidth;
onResize(null);
И тут начинается самое интересное, 1 раз в 10 попыток, после ручного ресайза сделать мануальный приводит к след результатам : stage.nativeWindow.width может быть например 500, при этом stage.stageWidth = 1000 и т.п. Как с этим бороться непонятно...

Попытки решить что либо дошли вот до чего, и то 100% результата не дали, хотя баг стал проявлятся 1 раз на 100-200 попыток.

Код AS3:
someWindow.nativeWindow.height = someWindow.nativeWindow.width / Config.TABLE_SCALE;
someWindow.nativeWindow.stage.stageWidth = someWindow.nativeWindow.width - 16;
someWindow.nativeWindow.stage.stageHeight = someWindow.nativeWindow.stage.stageWidth / Config.TABLE_SCALE;
onResize(null);
Есть идеи?

(добавлено)
Вот так короче почти без бага, сдвиг на 1-2 пикселя всего

Код AS3:
someWindow.nativeWindow.height = someWindow.nativeWindow.width / Config.TABLE_SCALE;
someWindow.nativeWindow.stage.stageWidth = someWindow.nativeWindow.width - 16;
someWindow.nativeWindow.stage.stageHeight = (someWindow.nativeWindow.stage.stageWidth - 39) / Config.TABLE_SCALE;
onResize(null);
Добавлено через 6 минут
Но это как по мне похоже на овно-код!!! что то тут не так
__________________
Марк Tween