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

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

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

Регистрация: Jan 2013
Сообщений: 40
По умолчанию Масштабирование объекта в окне

Привет!

В html, при вставке Flash объекта на страницу, есть такой параметр:
Код:
<param name='scale' value='noborder'/>
который изменяет размер анимации, пропорционально, а лишние полоски по бокам, скрывает. Как можно сделать тоже самое в ActionScript? Я пробовал сам высчитать высоту, ширину и позицию обьекта, не получилось.

Если скажем, размер рабочей области составляет 640x480 пикс, а обьект, пусть будет 1024x600 пикс. И значит, если уменьшить наш обьект, относительно меньшей стороны, до размера рабочей области, получаем 819x480 пикс. Ну а далее, помещаем, наш уменьшенный обьект в рабочую область и смещаем влево по x координате на "(819-640)/2". То же самое применительно, если и высота обьекта, больше его ширины.

Как реализовать это в коде?

Старый 17.01.2013, 22:02
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 2  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Пробовал менять Параметры Публикации. Не помогло.
Изображения
 

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
scaleX, scaleY у стейджа или другого папы.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 18.01.2013, 00:23
Riki вне форума Посмотреть профиль Отправить личное сообщение для Riki Найти все сообщения от Riki
  № 4  
Ответить с цитированием
Riki

Регистрация: Jul 2012
Сообщений: 48
Код AS3:
function resizePicture() {
			var delitel=0;
			pLoader.x=0;
			pLoader.y=0;
			if (pLoader.width>fotoHolder_Width || pLoader.width<fotoHolder_Width) {
				delitel=pLoader.width/fotoHolder_Width;
				pLoader.width=pLoader.width/delitel;
				pLoader.height=pLoader.height/delitel;
			}
 
			if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) {
				delitel=pLoader.height/fotoHolder_Height;
				pLoader.height=pLoader.height/delitel;
				pLoader.width=pLoader.width/delitel;
			}
			pLoader.x=(fotoHolder_Width-pLoader.width)/2;
			pLoader.y=(fotoHolder_Height-pLoader.height)/2;
			trace("resized");
		}
pLoader - загруженная картинка
fotoHolder_Width - высота контейнера
fotoHolder_Height - ширина контейнера

Старый 18.01.2013, 01:09
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 5  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Благодарю. Скачал какой то ролик, с этого адреса:http://psycity.ru/design_img/overstep/absynth.swf, чтобы протестить...
Вставил его в свою сцену. Вот что получилось(изображение), в результате компиляции. Уверены, может где недочет в коде? Или сама флешка у них корявая какая то?
Изображения
 

Старый 18.01.2013, 21:49
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 6  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Цитата:
if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) {
В этой строке, в знаках сравнения, нет ошибок?

Старый 19.01.2013, 21:09
Riki вне форума Посмотреть профиль Отправить личное сообщение для Riki Найти все сообщения от Riki
  № 7  
Ответить с цитированием
Riki

Регистрация: Jul 2012
Сообщений: 48
Цитата:
Сообщение от StasHappy Посмотреть сообщение
Благодарю. Скачал какой то ролик, с этого адреса:http://psycity.ru/design_img/overstep/absynth.swf, чтобы протестить...
Вставил его в свою сцену. Вот что получилось(изображение), в результате компиляции. Уверены, может где недочет в коде? Или сама флешка у них корявая какая то?
Что вам здесь, не нравится?
Все верно сделано.

Старый 19.01.2013, 21:25
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 8  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Вот здесь, почему одно и тоже, проверяем два раза? По моему здесь что-то не так.
Код AS3:
if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) {
Я исправил на это:
Код AS3:
if (pLoader.height<fotoHolder_Height) {
Проблема сразу разрешилась. Обьект, стал пропорционально масштабироваться на всю рабочую область. Благодарю за помощь!:-)

Старый 19.01.2013, 23:36
Riki вне форума Посмотреть профиль Отправить личное сообщение для Riki Найти все сообщения от Riki
  № 9  
Ответить с цитированием
Riki

Регистрация: Jul 2012
Сообщений: 48
Понимаете в чем дело, мы не одно и то же проверяем, мы проверяем для картинок которые меньше контейнера, и для которые больше контейнера, поэтому там два условия, а между ними or(||, "или" по-русски)

И исходный файл, очень в редких случаях будет масштабироваться на весь контейнер(не смотря на то что таких вариантов может быть бесконечно, но все же, в реальной жизни не много будет таких картинок которые будут именно "пропорционально" масштабироваться на весь контейнер, если вам конечно надо "пропорционально", а не наоборот :-) )

Старый 20.01.2013, 00:56
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 10  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Хм... Я в недоумении. В проверяемом вами условии, оба знака сравнения, в одну и ту же сторону. А левое и правое условия, идентичны. Это получается тоже самое, что и:

Код AS3:
if(A>B || A>B) {
// other code...
}
Не могу уловить логики данных операций.:-))

В общем, вот тут я начеркал в Фотошопе наглядный пример, поставленной задачи.
Изображения
 

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

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

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


 


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


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