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

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

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
Question Узнать начальный размер Stage в любой момент

Вопрос такой:
есть флэшка. во fla файле задаю размер 550x400. Потом при загрузке ставлю stage.ScaleMode=StageScaleMode.NO_SCALE и ресайзю своими ручками окошко Stag'а. При этом для того, чтобы панелька оставалась всегда в левом верхнем углу делаю вот так:
Код AS3:
panel.x=(550-stage.stageWidth)*0.5;
panel.y=(400-stage.stageHeight)*0.5;
Код работает как надо, но 550 и 400 тут - магические числа. Реальная начальная ширина и высота теряются при установке stage.ScaleMode=StageScaleMode.NO_SCALE и изменении размера. Как их получить в любой момент времени, чтобы можно было писать примерно так:
Код AS3:
panel.x=(stage.startWidth-stage.stageWidth)*0.5;
panel.y=(stage.startHeight-stage.stageHeight)*0.5;

Старый 27.08.2009, 13:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
В теории это должно было бы быть доступно у this.loaderInfo.width / this.loaderInfo.height, но при попытке от туда что-то прочитать возникает ошибка, поэтому, единственное решение, которое я пока придумал - this.loaderInfo.bytes и прочитать frameRect оттуда.
Вот пример, как это сделать:
http://www.senocular.com/flash/actio...s/SWFReader.as
__________________
Hell is the possibility of sanity

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

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
а указать stage.align = StageAlign.TOP_LEFT не решит проблему?

Старый 27.08.2009, 13:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
А align задать, не?

Старый 27.08.2009, 13:49
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Просто тут фишка такая, что если задать align = TL, то все можно посчитать, т.как точка регистрации стейджа будет в 0,0. А если align куда-нибудь в другое место, то нужно знать изначальный размер - иначе никак не посчитать.
__________________
Hell is the possibility of sanity

Старый 27.08.2009, 13:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
А я вообще не считаю полезными режимами что-либо, кроме TL.

Старый 27.08.2009, 14:24
Герыч вне форума Посмотреть профиль Отправить личное сообщение для Герыч Найти все сообщения от Герыч
  № 7  
Ответить с цитированием
Герыч
 
Аватар для Герыч

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
я пока придумал тупо так сделать:
Код AS3:
var scaleMode:String=stage.scaleMode;
stage.scaleMode=StageScaleMode.SHOW_ALL;
startStageWidth=stage.stageWidth;
startStageHeight=stage.stageHeight;
stage.scaleMode=scaleMode;
Добавлено через 1 минуту
Цитата:
Сообщение от wvxvw Посмотреть сообщение
А если align куда-нибудь в другое место, то нужно знать изначальный размер - иначе никак не посчитать.
именно для этого надо

Старый 29.08.2009, 04:15
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 8  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
А зачем кроме TL что-то еще использовать?
off: интернсно, что за контекст такой, если боты про мангу постят...
__________________
Дело не в тебе

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

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

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


 


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


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