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

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

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

Регистрация: Sep 2012
Сообщений: 204
По умолчанию код для ориентирования объектов по углам

Привет. Подскажите пожалуйста, как правильно прописать обекты к каждому углу странице в браузере?
вот есть основной код
Код AS3:
function init()
{
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
 
stage.addEventListener(Event.RESIZE, updateSize);
stage.dispatchEvent(new Event(Event.RESIZE));
 
backgroundRectangle.x = 0;
backgroundRectangle.y = 0;
}
допустим object1.x = ????
y = ????
или надо через Align?

Старый 11.09.2012, 23:30
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
stageWidth и stageHeight
__________________
Поймай яблоко 2!

Старый 12.09.2012, 16:12
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 3  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
правильно ли я понял, что если в HTML поправляем на % с пикселей, то и параметр stageWidth будет восприниматься в %?
то есть если есть объект obj_1
Код AS3:
obj_1.stageWidth = 100;
obj_1.stageHeight = 100;
то он окажется в правом нижнем углу? (если точка координат у муви клипа будет также справа внизу) ?

Старый 12.09.2012, 16:31
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
pomuс,
stageWidth всегда измеряется в пикселах.
__________________
Дети не должны знать о своих родителях

Старый 12.09.2012, 16:42
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от pomuс Посмотреть сообщение
если есть объект obj_1
...то у него нет свойства stageWidth. Есть же доки — прекрасное, надо сказать, пособие!

Вот пример того, как поставить в нижний правый угол объект, у которого точка привязки находится строго в левом верхнем углу (в противном случае нужно использовать несколько более сложное определение габаритов)
Код AS3:
oby_1.x = stage.stageWidth - obj_1.width; // прижали к правому краю
oby_1.y = stage.stageHeight - obj_1.height; // прижали к нижнему краю
__________________
Поймай яблоко 2!

Старый 12.09.2012, 18:30
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 6  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
ребята, спасибо за помощь , вы уже очень помогли. У меня остался 1 шаг. Вы уже наверняка поняли что 0 в флэше, у меня вообще другой профиль, но так уж сложилось что надо завершить. Обязательно возьмусь за изучение в перспективе. Итак:
Код AS3:
function init2()     //как я понимаю надо создавать отдеьные функции для каждого обекта в привязке по углам, всего 4. Тут я её переименовал
{
	stage.scaleMode=StageScaleMode.EXACT_FIT;   
	stage.addEventListener(Event.RESIZE, updateSize2);  // задал еще имя 
	stage.dispatchEvent(new Event(Event.RESIZE));
}
init2(); // как я понимаю это переменная- также нумерую
 
function updateSize2(e:Event) 
{
	obj_1.x = stage.stageWidth - obj_1.width; // прижали к правому краю
	obj_1.y = stage.stageHeight/6 - obj_1.height; // прижали к верхнему краю..кстати непонятно почему именно 6- определил методом тыка	
}
в строке stage.scaleMode=StageScaleMode.EXACT_FIT; указывается на scalemode всей сцены. а как мне задать это к объекту в сцене? Присвоить объекту переменную и потом вместо stage подписать имя переменной? что то пробовал...не идет.
Кстати эти scalemode EXACT FIT единственный который подходит в данном случае, но и он растягивает под экран, то есть у монитора 4:3 будет пропорциональная, а у 16:9 сблюснутая картинка. Как то можно поставить чтобы объект изменял размер относительно своеих пропорций? Что то мне подсказывает что это делается через задания соотношения сторон объекта, да?

Старый 12.09.2012, 19:20
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код AS3:
function exactFitProportional(obj:DisplayObject):void
{
	// масштаб по ширине, чтобы занять все пространство от левого до правого краев
	var scaleW:Number = stage.stageWidth / obj.width;
	// масштаб по высоте, чтобы занять все пространство от верхнего до нижнего краев
	var scaleH:Number = stage.stageHeight / obj.height;
	// выбираем наибольший из них
	var scaleMax:Number = Math.max(scaleW, scaleH);
	// пропорционально масштабируем объект
	obj.scaleX = scaleMax;
	obj.scaleY = scaleMax;
	// если нужно, выравниваем объект по центру
	obj.x = (stage.stageWidth - obj.width) / 2;
	obj.y = (stage.stageHeight - obj.height) / 2;
}
Пример использования
Код AS3:
exactFitProportional(obj_1)
Добавлено через 2 минуты
Забыл уточнить
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
__________________
Поймай яблоко 2!

Старый 12.09.2012, 20:06
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 8  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
Если код
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
надо было списать в тело скрипта выше, то ничего не выходит. Что атк что так, объект стал большим, (на четверть экрана) и не увеличиается, и не привязан ни какому краю.

Старый 12.09.2012, 20:35
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Это код для растягивания объектов на весь экран без пустых пространств и с соблюдением пропорций.
__________________
Поймай яблоко 2!

Старый 12.09.2012, 20:37
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 10  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
спасибо огромное за помощь!!
может попробую его приспособить!

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

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

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


 


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


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