![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2008
Сообщений: 30
|
Всем привет, понимаю, что тема избита, но...
.. почему при рисайзе во флэш плеере содержимое рисайзится с окном симметрично (все остается на своих местах где надо)... а когда прописать размер внутри html файла, то содержимое окна рисайзится, а их координаты не неняются вследствии чего часть флешки не видно... т.е. происходит рисайз и объекты "убегают" вправо..вместо того, чтобы оставаться по центру... |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 30
|
прописывал.. и в процентах...и игрался с align... ничего не помогает...все уезжает вправо...создается ощущение, что был сделан зум, а не рисайз... может быть изменение внутри html размеров приводит к порождению зум эффекта нежели реального рисайза?
а когда мануально растягиваешь плеер, то положение всех объектов перерисовывается нормально. внутри везде используется stageWidth, stageHeight. п.с. провел эксперимент.... когда меняешь отдельно параметры width & height... все нормально отражается...стоит их поменять вместе...происходит смещение объектов...т.е. банально зум эффект Последний раз редактировалось lolovo; 11.12.2008 в 13:31. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 30
|
это тоже имеется... я писал, что игрался с align... причем как в коде align, так и в html...везде все есть.
выяснил следующее: при помещении руками объекта на рабочую область флешки она перерисовывается нормально...проблемы нет когда же программно прописать, например: 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. |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 1
|
Флеш только начал изучать, как раз столкнулся с той же проблемой.
public function test() { graphics.lineStyle(2, 0x999999, 1, true, 'none'); graphics.beginFill(0xCCCCCC); graphics.drawRect(10, 10, 16, 16); } Жмем на 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 пикселей. Почитал форум, дописал код. 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|