Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.12.2010, 12:41
Ogat вне форума Посмотреть профиль Отправить личное сообщение для Ogat Найти все сообщения от Ogat
  № 1  
Ответить с цитированием
Ogat

Регистрация: Dec 2010
Сообщений: 9
По умолчанию Fullscreen+restore down и резиновые баннеры

Сделала резиновый баннер. Все работает прекрасно, но когда проверяю его в браузере начинается глюк: нажимаю на фулскрин и рестор даун, элементы оказываются на кривых местах, все исправляется путем ресайза. Но мне нужно, естественно, чтобы все всегда было на своих местах. Возможно есть еще какая-то функция, кроме onResize? Как правильно подойти к этому?

Код AS1/AS2:
Stage.scaleMode = "noScale";
Stage.align = "LT";
onResize = function() {
	if (Stage.width>768) {
	obj2._x = obj1._width;
	obj3._x = obj1._width+obj2._width+4;
	obj4._x = obj6._x+(obj6._width/2)-obj4._width;
	obj5._x = (obj6._x+obj4._width)+(obj6._width/2+obj4._width/2)-obj5._width;
	obj6._x = obj1._width+obj2._width+obj3._width;
	maska._width = Stage.width;
	stroke._width = Stage.width-1;	
	};
	if (Stage.width<=768) {
	obj2._x = obj1._width;
	obj3._x = obj1._width+obj2._width+4;
	obj6._x = obj1._width+obj2._width+obj3._width;
	maska._width = Stage.width;
	stroke._width = Stage.width-1;
	};
	if (Stage.width>884) {
	redtext._x = (obj3._width*2)+10;
	bluetext._x = obj2._width+15;	
	};
	if (Stage.width<884) {
	redtext._x = (obj3._width*2)-15;
	bluetext._x = obj2._width-15;		
	};		
}
Stage.addListener(this);
Я извиняюсь, если вопрос тупой, но я дуб

Старый 17.12.2010, 13:11
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Есть такая функция. Точнее событие, которое можно обработать.
Выполняйте то, что у вас выполняется на onResize, также при выполнении восстановления оконного режима. Отследить переход к обычному показу можно с помощью соотв. обработчика
Код AS1/AS2:
onFullScreen = function(bFull:Boolean) {}
т.е. bFull когда становится false.

Попробуйте:
Код AS1/AS2:
Stage.scaleMode = "noScale";
Stage.align = "LT";
Stage.addListener(this);
this.onResize = resizeAll;
 
this.onFullScreen = function(bFull:Boolean) 
{
	if (bFull == false)
	{
		resizeAll();		
	}
};
 
 
function resizeAll() 
{
	if (Stage.width>768) {
	obj2._x = obj1._width;
	obj3._x = obj1._width+obj2._width+4;
	obj4._x = obj6._x+(obj6._width/2)-obj4._width;
	obj5._x = (obj6._x+obj4._width)+(obj6._width/2+obj4._width/2)-obj5._width;
	obj6._x = obj1._width+obj2._width+obj3._width;
	maska._width = Stage.width;
	stroke._width = Stage.width-1;	
	};
	if (Stage.width<=768) {
	obj2._x = obj1._width;
	obj3._x = obj1._width+obj2._width+4;
	obj6._x = obj1._width+obj2._width+obj3._width;
	maska._width = Stage.width;
	stroke._width = Stage.width-1;
	};
	if (Stage.width>884) {
	redtext._x = (obj3._width*2)+10;
	bluetext._x = obj2._width+15;	
	};
	if (Stage.width<884) {
	redtext._x = (obj3._width*2)-15;
	bluetext._x = obj2._width-15;		
	};		
}
__________________
Идите первым!


Последний раз редактировалось mooncar; 17.12.2010 в 13:20.
Старый 17.12.2010, 13:39
Ogat вне форума Посмотреть профиль Отправить личное сообщение для Ogat Найти все сообщения от Ogat
  № 3  
Ответить с цитированием
Ogat

Регистрация: Dec 2010
Сообщений: 9
Спасибище!!!
А если я не восстанавливаю режим, а наоборот жму из фулскрина, есть название для этого? on...?

Добавлено через 1 минуту
Вообще сейчас тестирую оч странная ситуация:
1. Флэшка открывается: вид нормальный.
2. Жму фулскрин - криво
3. Ухожу из фулскрина - криво
4. Жму фулскрин - вид нормальный О_О
5. Ухожу из фулскрина - вид нормальный!!!
Елки))))

Старый 17.12.2010, 14:03
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну разбирайтесь.
Скорее всего надо поправлять-восстанваливать все и на фулскрин, и корректировать при ресайзе.

А в ответ на ваш вопрос - bFull будет false, когда переход в обычный режим и true - когда в оконный.
__________________
Идите первым!

Старый 17.12.2010, 14:26
Ogat вне форума Посмотреть профиль Отправить личное сообщение для Ogat Найти все сообщения от Ogat
  № 5  
Ответить с цитированием
Ogat

Регистрация: Dec 2010
Сообщений: 9
Получается нужно написать еще описание одних и тех же параметров два раза под два условия? Наверняка есть способ проще.

Старый 17.12.2010, 14:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
При фулскрне видимая область - сцена и ее новое расположение относительно краев монитора - это один случай (зависит от разрешения экрана и пропорций флешки).
При ресайзе в оконном режиме - другие изменения происходят, произвольные, зависящие от желания пользователя, от того как вы опубликовали флешку, видимая область также меняется.

Ну вот тема была:
http://www.flasher.ru/forum/showthread.php?t=107913
Возможно, не ваш случай касательно "криво", но может что-то полезное будет для вас.

Вообще как и что менять - это ваше дело. Функцию же на ресайз вы написали. А я вам просто подсказал, какое событие можно использовать для отслеживания переходов в фулскрин и обратно.

Если будете делать корректировку при переходе в фулскрин - вероятно вам как-то нужно запоминать исходные положения объектов до перехода в фулсрин и восстанавливать их при возврате к оконному режиму.
Т.е. записать возвраты эти в функцию onFullScreen.
Например, при нажатии вашей кнопки или по какому-то вашему событию перехода в фулскрин запоминать исходные положения, размеры если надо, а когда идет возврат, т.е.:
Код AS1/AS2:
this.onFullScreen = function(bFull:Boolean) 
{
	if (bFull == false)
	{
		//делать возврат значений на исходные
	}
};
__________________
Идите первым!


Последний раз редактировалось mooncar; 17.12.2010 в 14:51.
Старый 17.12.2010, 15:25
Ogat вне форума Посмотреть профиль Отправить личное сообщение для Ogat Найти все сообщения от Ogat
  № 7  
Ответить с цитированием
Ogat

Регистрация: Dec 2010
Сообщений: 9
у меня такое ощущение, что он вообще игнорирует все, что касается фулскрина: меняю значения - все то же самое

Старый 17.12.2010, 15:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
При переходе в фулскрин вы отслеживаете в функции, когда bFull становится true?

Код AS1/AS2:
Stage.addListener(this);
 
this.onFullScreen = function(bFull:Boolean) 
{
 
	if (bFull)
	{
		//действия при переходе во fullScreen
	}
	else
	{
		//действия при возврате к normal
	}
};
Да, в тестовой среде не проверять! Запускайте саму SWF-ку или из браузера.
__________________
Идите первым!


Последний раз редактировалось mooncar; 17.12.2010 в 16:07.
Старый 17.12.2010, 16:27
Ogat вне форума Посмотреть профиль Отправить личное сообщение для Ogat Найти все сообщения от Ogat
  № 9  
Ответить с цитированием
Ogat

Регистрация: Dec 2010
Сообщений: 9
Да, я проверяю в браузере.
Писала даже просто трэйс на фулскрин - игнорирует.
Наобум написала вместо onFullScreen
Код AS1/AS2:
this.onEnterFrame = function () {
	resizeAll();
};
работает при фулскрине О_О
На restore down продолжает косячить: не ресайзиться обратно, но все элементы на своих местах

Добавлено через 67 часов 16 минут
и никто мне не скажет, что я поступаю неправильно, да?

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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