Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как принудительно перерисовать экран? (http://www.flasher.ru/forum/showthread.php?t=172655)

Universe 14.12.2011 19:55

Как принудительно перерисовать экран?
 
Возник странный баг, выключаю visible у объекта, а объект не выключается, события мыши на нём перестают срабатывать, так как будто бы его нет, но визуально он не исчезает, если подвигать контейнер в котором находится этот объект - он пропадает....не могу понять почему так происходит. А иногда вообще до смешного доходит - остаётся видимой только "кусок" контейнера. Создаётся впечатление что экран визуально не отрисовывается с новым контентом. Такое вообще возможно? Впервые с таким сталкиваюсь!
Может есть способ "принудительно" отрисовать экран?

КорДум 14.12.2011 19:57

Возможно, не раз встречался. Это баг рендера.
Будет интересно узнать, как избавиться.

in4core 14.12.2011 20:05

Ниразу таких глюков не встречал. Может быть проблема в FP ?

fish_r 14.12.2011 20:09

Цитата:

Сообщение от КорДум (Сообщение 1051453)
Возможно, не раз встречался. Это баг рендера.
Будет интересно узнать, как избавиться.

alpha = 0;
visible = false;

?

NikolaCocaCola 14.12.2011 21:16

fish r не работает ваш вариант

in4core 14.12.2011 21:19

а дайте код - где такие глюки мы у себя затестим

ChuwY 14.12.2011 21:39

А фильтры используются на удаляемом объекте\родителе?

NikolaCocaCola 14.12.2011 21:41

это целый проект и кусок кода здесь не получится дать. Вот ссылка http://ffly.com.ua/rosco/tshirt/. В закладке дизайн установите несколько картинок на сцену и переключайтесь между ними несколько раз, возникнет баг в виде неисчезающего меню (справа от картинки), а эта менюшка должна пропадать на неактивных картинках, если повернуть на 9 градусов изображение, то будет исчезать только часть менюшки.

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

fish_r 14.12.2011 21:47

Похоже на то, что компонент просто не получает visible=false... может не успевает? Надо смотреть в коде...

NikolaCocaCola 14.12.2011 21:52

вот метод который отключает видимость всех элементов, но именно менюшка, под названием btn_s, не отрубается. Метод очень простой и вызывается на клик.
Код AS3:

public function magicBoxVisibleFalse():void
                {
                        magicBoxViewer.bg.visible = false;
                        magicBoxViewer.pointerLeftDown.visible = false;
                        magicBoxViewer.pointerLeftUp.visible = false;
                        magicBoxViewer.pointerRightDown.visible = false;
                        magicBoxViewer.pointerRightUp.visible = false;
                        magicBoxViewer.btn_s.visible = false;
                        magicBoxViewer.btn_s.alpha = 0;
                        magicBoxViewer.containerNumLayers.visible = false;
                }


in4core 14.12.2011 22:31

посмотрел проект - косяк в коде 10000000%

dimarik 14.12.2011 22:45

Не ходил по ссылкам. Может, Баг 24?

NikolaCocaCola 14.12.2011 22:46

Всем спасибо. ChuwY Вам отдельная благодарность, именно фильтр был причиной это проблемы.

fish_r 14.12.2011 22:49

Подождите-ка, не понял! Из за фильтра объект может не выполнить visible=false?

in4core 14.12.2011 23:16

Цитата:

Подождите-ка, не понял! Из за фильтра объект может не выполнить visible=false?
Да фигня это все - косяк в коде - причем тут фильтр ваще

NikolaCocaCola 14.12.2011 23:53

не могу, пока, точно объяснить эту зависимость, может это и "фигня ваще" но при отключении метода в котором происходит вот это
Код AS3:

if(obj1.hitTestObject(obj2))
                        {
                                if(areaClipBmpData.hitTest(areaLoc, 255, objClipBmpData, objLoc, 255))
                                {
                                        obj2.getChildAt(7).filters = [new GlowFilter()];
                                }
                                else
                                {
                                        obj2activMagicBox.getChildAt(7).filters = [];
                                }
                        }

этот баг пропал бесследно, если есть адекватные комменты - жду с нетерпением

zuxul 14.12.2011 23:58

Видел когда-то баг, когда были в одном месте много Shape-ов, и они перерисовывались кусками неправильно. При смене флеш-плеера баг пропадал.

Psycho Tiger 15.12.2011 02:03

Цитата:

Сообщение от in4core (Сообщение 1051499)
посмотрел проект - косяк в коде 10000000%

Это на основании чего такие выводы?

in4core 15.12.2011 03:21

Цитата:

Это на основании чего такие выводы?
1. Ну это статистика - если что то работает криво или не так как хотелось бы - смотри код.
2. obj2activMagicBox.getChildAt(7) - с такой реализацией , скорее всего и дальнейший код написан в этом духе, а значит уловить ниточку где не срабатывает или перерабатывает неикй метод становится сложнее - и кажется все правильно.
3. Опыт работы с IDE, Develop уже года 4, на анимацию и работу с методами типа visible-alpha потрачена большая часть времени, - все так то с этого начинали. - И за всю свою легенду работы - глюков такого плана я не видел ни разу, если не косячил сам. Если бы адоб допускала проблемные места в методах основанных еще в 2003 году - широких для работы, то было бы горе этому адобу.

i.o. 15.12.2011 03:31

Цитата:

Если бы адоб допускала проблемные места в методах основанных еще в 2003 году
Почему 2003? AS3 разрабатывался с 2005.
Ну а на счет горе Адобу - загляни на их багтрекер - там багов немеряно :)

fish_r 15.12.2011 09:04

Цитата:

Сообщение от NikolaCocaCola (Сообщение 1051538)
не могу, пока, точно объяснить эту зависимость, может это и "фигня ваще" но при отключении метода в котором происходит вот это

Попробуйте присвоить фильтр непосредственно перед командой visible=false... если объект исчезнет, так-и, значит баг в другом.

Wolsh 15.12.2011 09:53

Вложений: 1
Баги с фильтрами DropShadowFilter и GlowFilter были всегда, один и тот же файл в разных версиях плеера на разных машинах мог бажить, мог не бажить. Сам сталкивался. Причина там на первый взгляд в неравенстве областей перерисовки – с фильтром она больше размера самого объекта, и тут возможно что-то в рендере проглючивает, и кешированные в битмап объекты начинают сыпаться кусками.
Вот кстати файлик – на моей машине играется без багов в 10 и в 11 плеере. Практически все друзья, которым я пытался его показать, твердили об одном и том же баге (в частности на Макбуке) - при перетаскивании собранного фрагмента над другими паззлами появляются артефакты в виде "замороженных" кусков изображения.

DaFive 15.12.2011 11:10

Wolsh, 11 плеер, без багов.
Вообще некоторые фильтры работают по-разному на разных процах (разные архитектуры). На хабре встречал пост про сумасшедший colormatrixfilter. На интелах работал ровно, а на амд выдавал эффекты, которые эпилептикам точно смотреть нельзя.

fish_r 15.12.2011 11:49

Цитата:

Сообщение от fish_r (Сообщение 1051596)
Попробуйте присвоить фильтр непосредственно перед командой visible=false... если объект исчезнет, так-и, значит баг в другом.

Или можно оставить тот метод, но перед изм. свойства visible обнулять фильтр...

in4core 15.12.2011 14:58

i.o я как бы еще и ас2 тут прихватил словом, объясняя тем, что такие команды как висибл, альфа были еще тогда - и горе адобу если он оставляет в таких местах ошибки. Багтрекер велик это ясно, но там скорее редкие весчи , чем ТС тема. Например косяки с битмапой > 10000 px и т.д. Ну что ж теперь

Universe 15.12.2011 15:23

Цитата:

посмотрел проект - косяк в коде 10000000%
Просто гениальное заявление.
Цитата:

i.o я как бы еще и ас2 тут прихватил словом, объясняя тем, что такие команды как висибл, альфа были еще тогда - и горе адобу если он оставляет в таких местах ошибки. Багтрекер велик это ясно, но там скорее редкие весчи , чем ТС тема. Например косяки с битмапой > 10000 px и т.д. Ну что ж теперь
in4core, вы мыслите весьма узко. То что у адоба нету багов с visible = false, это ещё не означает что этот visible будет срабатывать в сложных ситуациях с большим кол-вом "если", такими как например те же фильтры или ещё какое то сложное взаимодействие с прорисовкой битмеп даты или ещё фиг знает чем.
Вот именно про опыт этого сложного взаимодействия и хотелось бы узнать от людей которые имеют опыт на этот счёт, а не просто могут написать про 10000000% чего то там.


Часовой пояс GMT +4, время: 12:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.