Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Тонкости FlashPlayer или баг размеров? (http://www.flasher.ru/forum/showthread.php?t=144743)

switcher! 20.09.2010 12:28

Тонкости FlashPlayer или баг размеров?
 
Имеем код:
Код AS3:

//========constructor====
var s:Sprite = new Sprite();
s.graphics.beginFill(0);
s.graphics.drawCircle(200, 200, 200);
 
super.addChild(s);
trace(super.getBounds(this), super.transform.pixelBounds);

Имеем размеры stage: 800 (stageWidth) и 1200 (stageHeight).

Что же выдает нам трейс:
(x=0, y=0, w=400, h=400) (x=70, y=0, w=330, h=330)

Визуально размер круга соответствует второму Rectangle. Отступ в 70 пикселей также имеется. Погрешность начинается от 993 пикселей в высоту.
Изменение stageWidth также вызывает погрешность, только размер для появления погрешности больше.

Это как понимать? И проявляется ли подобное еще у кого-то ?

Zebestov 20.09.2010 13:25

stage.scaleMode = StageScaleMode.NO_SCALE ничего не меняет?

switcher! 20.09.2010 13:53

меняет...
(x=0, y=0, w=400, h=400) (x=0, y=-105, w=400, h=400)
При этом stageHeight превращается в 990. Хотя до NO_SCALE отдавала честные 1200.
А круг уползает вверх. Полагаю, на эти самые 105 пикселей.

Zebestov 20.09.2010 14:02

у тебя разрешение 1440х990?

Добавлено через 2 минуты
и флэшка выравнивается к тому же посередине (по вертикали)? сам посчитаешь? ;)

switcher! 20.09.2010 14:16

Цитата:

Сообщение от Zebestov (Сообщение 937258)
у тебя разрешение 1440х990?

1280x1024

Цитата:

Сообщение от Zebestov (Сообщение 937258)
и флэшка выравнивается к тому же посередине (по вертикали)?

если посередине экрана монитора (по высоте), то нет.

Цитата:

Сообщение от Zebestov (Сообщение 937258)
сам посчитаешь? ;)

судя по всему, считать уже не надо? :)

UPD: да, очевидно, флэшка в этом случае все же привязана к экрану. По крайней мере:
1) Изменение высоты в пределах "зоны погрешности" не уменьшает ноу_скельную высоту. Но тут удивляет почему погрешность начинается с 993-х, а высота упирается в 990.
2) Убирание/восстановление виндовой нижней панели изменяет stageHeight. При чем изменяет в два этапа (если два раза и более убирать/восстанавливать панель). Первое значение - 972, второе - 948. И, собственно, Rectangle скачет соответственно.

Итого, хотелось бы понять зачем FlashPlayer привязывается к размерам экрана монитора (при чем весьма странно привязывается)? Может в этом и есть свой плюс. Но пока я вижу один большой минус.

Zebestov 20.09.2010 14:22

ну смотри какая магия чисел выходит:

stageHeight стал 990 — это потому что ты свою флэху, которая хочет быть 1200 по высоте как-то втулил в 990 по высоте и при этом NO_SCALE. тут все понятно — ищи почему у тебя высота урезается до 990.

дальше. 105 — это как-то очень половина от 1200-990, что говорит о том, что флэшка выступает в равной мере как снизу так и сверху, отчего у тебя твой шарик и снесло на 105 точек вверх.

а уже почему вся эта логика имеет место быть — разбирайся по месту.

switcher! 20.09.2010 14:41

насчет половинных значений - тоже приметил. Но это точно никак не связано с расположением самой флэхи.

Цитата:

флэшка выступает в равной мере как снизу так и сверху
Если ты про рабочую область самого FlashPlayer, то да. Вопрос в том, почему она выступает?
Если ты про окно самого плеера, то нет. Он "залазит" только вниз, а до верха экрана не достает прилично.

Цитата:

а уже почему вся эта логика имеет место быть — разбирайся по месту.
а в чем разбираться ? Это проявляется, если в в пустой документ-класс вставить вышенаписанные строчки и установить соответствующие размеры stage (видимо, для каждого разрешения свои размеры - писал выше).
Сорсы FlashPlayer и Windows искать? )))

Zebestov 20.09.2010 15:12

все это интересно конечно, но ты пробовал сделать самое очевидное — вставить эту флэшку в HTML документ, который заботливо предоставляет твоему мувику его желанные 1200px по высоте? или ты это не для сайта делаешь (такое себе десктоп апп с высотой 1200px)

switcher! 20.09.2010 16:15

в браузере-то все ок. Однако, это же не дело, что в standalone своя разметка, в плагине - своя.
Имо, это кочка на ровном месте. Потому что надо вытаскивать из Capabilities тип плеера, и если плагин - то все остается как было, а если стэндэлоун - крутись как хочешь. Еще и не известно доподлинно: что от чего пляшет. Понятно, что от экранного разрешения и, видимо, системных панелей. Но это все на уровне дурдома.

Zebestov 20.09.2010 16:22

Цитата:

Сообщение от switcher! (Сообщение 937298)
в браузере-то все ок. Однако, это же не дело, что в standalone своя разметка, в плагине - своя.
Имо, это кочка на ровном месте. Потому что надо вытаскивать из Capabilities тип плеера, и если плагин - то все остается как было, а если стэндэлоун - крутись как хочешь. Еще и не известно доподлинно: что от чего пляшет. Понятно, что от экранного разрешения и, видимо, системных панелей. Но это все на уровне дурдома.

не годится свою неспособность организовать рабочее пространство внутри FP при произвольном разрешении иносказательно перекидывать на головы разработчиков ;) они предоставили достаточно средств для позиционирования экранных объектов в любых условиях.


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

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