PDA

Просмотр полной версии : Обновление мувиклипа (на TV)


ISergey
17.09.2012, 18:43
Добрый день, помогите, пожалуйста, советом.

стоит цель: при определенном событии (клавиша мыши, кнопка, скрипт из вне, не суть важно) скрывать одну картинку и показывать другую.
На ПК все ОК.
Проблема: при запуске на TV (большой экран, медленный проц) перерисовка не происходит, или прерисовываетcя только часть картинок.

Итак:
Создаю пустой клип (контейнер под картинки):

parentmc = _root.createEmptyMovieClip("mcNavigationPanel", _root.getNextHighestDepth())

гружу в него две картинки

buttonPlay = parentmc.attachMovie("library.play.png", "buttonPlay", parentmc.getNextHighestDepth());
buttonPause = parentmc.attachMovie("library.pause.png", "buttonPause", parentmc.getNextHighestDepth());

на событие клавиши или внешнего скрипта скрываю одну и показываю другую

buttonPlay._visible = false;
buttonPause._visible = true;


итого, как написано в проблеме, смены картинок не происходит.
все изменения на сцене происходят по таймеру
setInterval(Delegate.create(this,FOnEnterFrame), 40);
с вызовом в конце
updateAfterEvent();
либо привязкой к EnterFrame (эффекта нет ни так ни так)

как вариант, пробовал выносить картинки за пределы сцены (-10000px) (результат тот же)

Весь проект во flashdevelop (as2).

буду благодарен за любой совет.

Добавлено через 17 часов 12 минут
помог костыль: фоновый Textfield заставляет перерисовывать область корректно.
помогите избавиться от костыля))

Hauts
18.09.2012, 12:54
Очень специфичная задача, сложно представить, по каким причинам такое может происходить.

Вроде в коде все верно. Попробуйте вывести на экран версию фп и на компе в такой же версии плеера потестить.

ISergey
18.09.2012, 13:26
на компе хватает мощностей - все летает.
впечатление такое, что флеш игнорирует эту область для перерисовки.

Добавлено через 4 минуты
подсветка областей изменения задачу ясней не сделала ( на телике дебажную не запущу

Hauts
18.09.2012, 13:38
Так и не нужно дебажный запускать на телеке. Просто в текстовое поле версию фп выведите и посмотрите, какая она. А потом уже и разбираться можно, почему такое происходит.

ISergey
18.09.2012, 15:19
8-я (под нее и код)

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

Hauts
18.09.2012, 16:01
container.onEnterFrame = function(){
this._x = Math.random() / 100;
this._y = Math.random() / 100;
}


Может что-нибудь такое поможет?)

ISergey
18.09.2012, 16:15
такой костыль был предыдущий))
при большем количестве объектов дергать каждый совсем не хочется(

Hauts
18.09.2012, 16:22
Ну.... можно флаг менять какой-нибудь, который обозначает необходимость обновления экрана.

ISergey
18.09.2012, 16:40
так сейчас проблема в том, что он как раз и не хочет обновлять( хотя должен был.