Форум 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=164721)

igrik 18.08.2011 14:41

Цитата:

Сообщение от Genzo (Сообщение 1022861)
Событие Event.RESIZE является конечным , оно возникает после того как размер изменился , в его обработчике нужно возвращать исходное качество , а не менять его.

Понятно, спасибо

wvxvw 18.08.2011 14:46

Событие resize случается с определенной дискретностью во времени. Т.е. если вы растягиваете медленно окно с флешкой, то оно будет случаться, в зависимости от плеера, оси, браузера и т.п. с каким-то интервалом. Интервал вам заранее не известен. Закончится ли изменение размеров - вам тоже не известно (может быть так, что и не закончится вообще, если вашими же умелыми руками в HTML странице будет скрипт "плавно меняющий" размер флешки, постоянно). Так что если вы имели в виду событие потянул-отпустил, то, в общем случае, "отпустил" может никогда не наступить, и предполагать, что оно обязательно наступит, следовательно, не логично. Логично по таймеру или в каждом новом кадре проверять не изменились ли с последнего раза размеры сцены (т.е. не произошло ли >0 событий resize), и, если да, то отрисовать сцену по-новой.

igrik 18.08.2011 14:47

Цитата:

Сообщение от wvxvw (Сообщение 1022869)
Событие resize случается с определенной дискретностью во времени. Т.е. если вы растягиваете медленно окно с флешкой, то оно будет случаться, в зависимости от плеера, оси, браузера и т.п. с каким-то интервалом. Интервал вам заранее не известен. Закончится ли изменение размеров - вам тоже не известно (может быть так, что и не закончится вообще, если вашими же умелыми руками в HTML странице будет скрипт "плавно меняющий" размер флешки, постоянно). Так что если вы имели в виду событие потянул-отпустил, то, в общем случае, "отпустил" может никогда не наступить, и предполагать, что оно обязательно наступит, следовательно, не логично. Логично по таймеру или в каждом новом кадре проверять не изменились ли с последнего раза размеры сцены (т.е. не произошло ли >0 событий resize), и, если да, то отрисовать сцену по-новой.

Спасибо за ответ

trng 18.08.2011 16:35

Событие Event.RESIZE возникает ПОСЛЕ того, как размер stage изменился.
Далее возможны 2 варианта:
1. Если отключены всевозможные настройки типа "Scale content with stage", то ПОСЛЕ ресайза stage (в момент вызова назначенного resizeHandler) ни один объект еще не изменил размер. Соответственно с ними можно делать все что угодно - программно (в теле resizeHandler).
2. Если всевозможные настройки типа "Scale content with stage" включены, то на момент вызова resizeHandler (по событию Event.RESIZE) все объекты с включенными опциями Scale уже будут изменены в размере. Причем для них событие RESIZE может и не возникнуть, так как флеш в этом случае "думает", что пользователю нужна "экранная лупа", и он (флеш) отресайзит объекты без вашего участия.


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

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