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

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

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

Регистрация: Jun 2008
Сообщений: 30
По умолчанию resize окна

Всем привет, понимаю, что тема избита, но...
.. почему при рисайзе во флэш плеере содержимое рисайзится с окном симметрично (все остается на своих местах где надо)... а когда прописать размер внутри html файла, то содержимое окна рисайзится, а их координаты не неняются вследствии чего часть флешки не видно... т.е. происходит рисайз и объекты "убегают" вправо..вместо того, чтобы оставаться по центру...

Старый 11.12.2008, 13:19
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от lolovo Посмотреть сообщение
а когда прописать размер внутри html файла
Пропишите 100%

Старый 11.12.2008, 13:26
lolovo вне форума Посмотреть профиль Отправить личное сообщение для lolovo Найти все сообщения от lolovo
  № 3  
Ответить с цитированием
lolovo

Регистрация: Jun 2008
Сообщений: 30
прописывал.. и в процентах...и игрался с align... ничего не помогает...все уезжает вправо...создается ощущение, что был сделан зум, а не рисайз... может быть изменение внутри html размеров приводит к порождению зум эффекта нежели реального рисайза?

а когда мануально растягиваешь плеер, то положение всех объектов перерисовывается нормально. внутри везде используется stageWidth, stageHeight.

п.с. провел эксперимент.... когда меняешь отдельно параметры width & height... все нормально отражается...стоит их поменять вместе...происходит смещение объектов...т.е. банально зум эффект


Последний раз редактировалось lolovo; 11.12.2008 в 13:31.
Старый 11.12.2008, 13:32
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Код AS3:
stage.align = StageAlign.TOP_LEFT;

Старый 11.12.2008, 13:40
lolovo вне форума Посмотреть профиль Отправить личное сообщение для lolovo Найти все сообщения от lolovo
  № 5  
Ответить с цитированием
lolovo

Регистрация: Jun 2008
Сообщений: 30
это тоже имеется... я писал, что игрался с align... причем как в коде align, так и в html...везде все есть.

выяснил следующее:

при помещении руками объекта на рабочую область флешки она перерисовывается нормально...проблемы нет
когда же программно прописать, например:
Код AS3:
var s:Sprite = new Sprite();
s.graphics.beginFill(0);
s.graphics.drawRect((stage.stageWidth-100)/2,(stage.stageHeight-100)/2,100,100);
s.graphics.endFill();
addChild(s);
то данная проблема возникает...

т.е. странно получается, если запускать swf через flash player... то проблем нет, все отлично перерисовывается при рисайзе.... если через html смотреть этот клип... то перерисовка неправильная... неужели в случае html просмотра придется добавлять событие на resize и перерисовывать все содержимое по новой... гемор какой-то, вам не кажется?

....продолжив эксперимент.... прихожу к заключению, что, меняя параметры width & height через html, происходит не рисайз, а зум... вот.


Последний раз редактировалось lolovo; 11.12.2008 в 18:50.
Старый 22.12.2008, 17:31
LastHand вне форума Посмотреть профиль Отправить личное сообщение для LastHand Найти все сообщения от LastHand
  № 6  
Ответить с цитированием
LastHand

Регистрация: Dec 2008
Сообщений: 1
Флеш только начал изучать, как раз столкнулся с той же проблемой.

Код AS3:
public function test()	{
	graphics.lineStyle(2, 0x999999, 1, true, 'none');
	graphics.beginFill(0xCCCCCC);
	graphics.drawRect(10, 10, 16, 16);
}
1 - апач. Большой квадрат, смещенный вправо.
Жмем на run, открывается localhost/test/bin-debug/test.html - видим квадрат со стороной 34 пикселя плюс бордер 2 пикселя, смещенный вправо примерно на 40 пикселей. Причем верхний край бордера на 1 пиксель съеден краем браузера.

2 - локальный html. Большой квадрат, смещенный еще дальше вправо и немного вниз.
Закрываем, идем в bin-debug, открываем локально test.html - видим квадрат того же размера, но смещенный еще дальше вправо и вниз примерно на 20 пикселей.

3 - локальный swf. Маленький квадрат, немного смещенный вправо-вниз.
Закрываем, открываем test.swf, загружается в плеере - видим квадрат со стороной 14 пикселей плюс бордер 2 пикселя, смещен от верхнего-левого угла вниз и вправо на 9 пикселей.

Почитал форум, дописал код.
Код AS3:
public function test()	{
	var swfStage:Stage = this.stage;
	swfStage.scaleMode = StageScaleMode.NO_SCALE;
	swfStage.align = StageAlign.TOP_LEFT;
	graphics.lineStyle(2, 0x999999, 1, true, 'none');
	graphics.beginFill(0xCCCCCC);
	graphics.drawRect(10, 10, 16, 16);
	trace(swfStage.x,', ',swfStage.y,', ',swfStage.width,', ',swfStage.height);
}
Трейс в консоли почему-то не отобразился...

1 - апач. Большой квадрат, смещенный вправо.
Такой же большой квадрат, смещенный вправо. Верхний край бордера съеден браузером.

2 - локальный html. Маленький квадрат, немного смещенный вправо-вниз.
Квадрат 14х14, расстояние от бордера 9 к верхнему и 9 к левому краям.

3 - локальный swf. Маленький квадрат, немного смещенный вправо-вниз.
Квадрат 14х14, расстояние от бордера 9 к верхнему и 9 к левому краям. То есть ничего не изменилось.

Случай "1 - апач" при изменении размера окна дает изменение положения серого квадрата - его можно загнать в левый верхний угол или сделать смещение не вправо, а вниз. Наводит на мысль о том, что невидимый stage файла дефолтным размером 500x375 растягивает по максимуму до 100% ширины или высоты окна, не изменяя пропорций.
Заглянул в html - созданная флексом мешанина JS. Почему она ведет себя по-разному при запуске через апач и напрямую в браузер - сходу не разобрался. Скорее всего пофиксится при нормально написанном html.

Съедание 1 пикселя по краям - спишем на проделки браузера.

Гораздо интереснее другое - почему квадрат потерял или недобрал 2 пикселя? Я просил 16, а получилось 14 плюс по 2 пикселя бордера с каждой стороны.

UPD: Пиксель по краям не съедается браузером, и квадрат получается не меньше указанного.
Это бордер рисуется не вокруг квадрата и не на его площади, а пополам. То есть половина толщины бордера приходится на площадь квадрата и половина толщины бордера приходится на площадь вокруг квадрата.
Бордер толщиной 1 ложится на квадрат.
Осталось разобраться с вставкой swf в html.


Последний раз редактировалось LastHand; 22.12.2008 в 18:27.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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