论坛

由用户创建的信息 den812
10 August 2016 15:53
Ответ на сообщение пользователя Иван Любовников
там, где нужно сразу отрисовать кадр, например, после main.resume()

попробую сегодня скажу результат., но что то мне сдается, что выполнив резьюм уже увижу тот кадр старый
10 August 2016 15:36
Ответ на сообщение пользователя Иван Любовников
прикрепил для 16.07

надо вызывать так:
m_main.frame(m_time.get_timeline(), 0);

должна работать, даже если движок на паузе


так в моем коде получается куда это засунуть? после паузы или перед рестартом?
не очень понимаю
10 August 2016 15:03
Ответ на сообщение пользователя Иван Любовников
а версия SDK какая?

сейчас вроде самая свежая была, ну если что обновлюсь сразу .. предупрелите под какую просто
10 August 2016 14:47
Ответ на сообщение пользователя Иван Любовников
нет, но могу вам поправленные исходники скомпилить, там изменений - одна строчка, правда стабильность не гарантируется , но ничего сломаться, вроде, не должно

там можно вынести функцию frame и вызывать её в произвольный момент

буду благодарен , за одно и проверим сработает ли оно так или нет..
и конечно немного пояснений мне не помешают как этим новым функционалом пользоваться

СПАСИБО ЗАРАНЕЕ
10 August 2016 13:04
Ответ на сообщение пользователя Иван Любовников
релиз каждый месяц, но врят ли мы это сделаем в ближайшее время - не приоритет

в особо сложных случаях можно использовать weinre:
https://www.npmjs.com/package/weinre
http://stackoverflow.com/a/19439498

У меня тут Тизен , мало того что это не совсем андройд, да и еще рута нет (
по сему фокус с weinre не прокатит (

я могу видеть сообщения стстемные в консоли в сдк, но туда не проходят сообщения от приложений (
вот так это сделано типа для безопасности .. гады короче они ((

Может еще все-ж есть какая возможность не прорисовывать тот самый первый кадр кривой?
09 August 2016 22:01

Ответ на сообщение пользователя Иван Любовников
………

в любом случае можно допилить исходники и вывести наружу функцию frame: ссылка, чтобы принудительно отрисовать кадр в нужный момент времени
я бы посоветовал так и сделать, если по-другому не получается

а когда сл. релиз? может все-же сделать прямой доступ к отрис. кадров ?

про дебаг на устройстве: не могу ничего сделать, т.к. реалтайм консоль отключена и достучаться до нее не получается, т.к. это не браузер стандартный да и экран микроскопический стандартные методы дебагинга не подходят.
я обычно вывожу реалтайм информацию на экран поверх всего в ХТМЛ теге… ну и алерты конечно ))


09 August 2016 16:06

Ответ на сообщение пользователя Иван Любовников
не, это все зашито внутри

а вы какую версию используете? b4w.min.js? можно просто в ней поискать "preserveDrawingBuffer", он в одном месте встречается

да минифицированную конечно ,

вот нашел в ней
да только в одном месте
a.context={alpha:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!0};


ставлю 1 и пробую вместо 0 ? какой вообще эффект должна оказать данная переменная?

_________________

попробовал все так же сначала строе изображение и потом целк и новое около 1сек все
09 August 2016 15:40

Ответ на сообщение пользователя Иван Любовников
можете ещё попробовать в исходниках проставить здесь false:
config.js
- как недавно выяснилось, этот флаг в принципе может приводить к багам на ряде устройств


а можно как то без исходников и пересборки туда достучаться из JS?
а то менеджер проектов я сочтвенно не использую.. итд
09 August 2016 14:54

Ответ на сообщение пользователя Иван Любовников
а к этому моменту render_cb уже вызвался, или он позже срабатывает через секунду?

да я и говрю что пересчет(чекТайм) срабатываетпозже на сл. кадре а первый кадр после пробужения или получения фокуса всегда показывает старый … ранее до последних доработок было так что успевало 2 кадра показать.. при чем один старый затем на сек больший. а сейчас только один старый как буд то из буфера. в ТРИИ например вроде есть принудительная очистка буфера кадров перед просыпанием ли перед засыпанием..
09 August 2016 12:21

Ответ на сообщение пользователя Иван Любовников
1 фпс тоже лучше выставлять в render_cb как то так:

function frame_cb() {
if (m_main.is_paused())
m_cfg.set("max_fps", 60);
}

function render_cb() {
m_cfg.set("max_fps", 1);
checkTime();
}


сделал так , но координально ни чего не изменилось с первым кадром который всеравно показывается старый и потом через секунду появляется новый, текущего времени кадр.. и стрелки и свет прыгают на новое положение ((

ни как не могу понять почему виден старый кадр раз мы пересчет запускаем до рендера(