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

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

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

Регистрация: Mar 2009
Сообщений: 7
Question Переназначение типа

Привет всем.

Проблема у меня в следующем.
Есть слайдшоу. Работает отлично, но не правильно реагирует на изменение размеров окна.
Каждую картинку массивом загоняю в контейнер типа Sprite.

для изменения размеров написал мелкий класс, который вызываю с параметрами.
Код AS3:
public static function resizeBg(obj:Sprite,w:Number,h:Number):void
{
	obj.x=0;
	obj.y=0;
	obj.width=w;
	obj.height=h;
	(obj.scaleX > obj.scaleY) ? obj.scaleY = obj.scaleX : obj.scaleX = obj.scaleY;
}
При изменении окна меняю размеры моего контейнера. При этом возникает косяк, картинки не правильно получают размер окна и слетают. По координатам всё норм, но вот по ширине и высоте - глюк.

Тогда мне посоветовали в функции которая срабатывает при изменении окна менять размеры не контейнера, а каждого элемента в нём.. Проходиться циклом по контейнеру и менять размер, вот как:
Код AS3:
for (var i:int = 0; i < _imgHolder.numChildren; i++) {
	var currentChild:DisplayObject = _imgHolder.getChildAt(i) as Sprite;
	Resizer.resizeBg(currentChild, Main.instance.stage.stageWidth, Main.instance.stage.stageHeight);
}
_imgHolder - это контейнер, у которого тип Sprite
Resizer - это и есть класс, который отвечает за изменение размеров.
Таким образом у меня получается ошибка о назначении типов.
Код:
1118: Implicit coercion of a value with static type flash.display:DisplayObject to a possibly unrelated type flash.display:Sprite.
Попробовал в Resize не задавать явный тип для currentChild, ошибка пропала, но анимация слайдшоу не работает, происходит тупо переключение и всё.

Скажите пожалуйста как правильнее и как лучше сделать так, чтобы не соскакивали размеры картинок при изменении размера окна, и чтобы не было ошибки.?

Спасибо.

Старый 15.02.2012, 15:37
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 2  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Вместо
Цитата:
public static function resizeBg(obj:Sprite,w:Number,h:Number):void
Код AS3:
public static function resizeBg(obj:DisplayObject,w:Number,h:Number):void
Не очень понятно, что Вы хотите.
__________________
http://www.chessmax.ru

Старый 15.02.2012, 15:37
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 3  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код AS3:
public static function resizeBg(obj:DisplayObject,w:Number,h:Number):void
{
	obj.x=0;
	obj.y=0;
	obj.width=w;
	obj.height=h;
	(obj.scaleX > obj.scaleY) ? obj.scaleY = obj.scaleX : obj.scaleX = obj.scaleY;
}
Цитата:
Скажите пожалуйста как правильнее и как лучше сделать так, чтобы не соскакивали размеры картинок при изменении размера окна, и чтобы не было ошибки.?
Зависит от вашей реализации и т.п.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 15.02.2012, 15:50
peopleofdesign вне форума Посмотреть профиль Отправить личное сообщение для peopleofdesign Найти все сообщения от peopleofdesign
  № 4  
Ответить с цитированием
peopleofdesign

Регистрация: Mar 2009
Сообщений: 7
Если я в resizeBg поставлю тип входящий DisplayObject, то по неясным мне причинам анимация слайдшоу не работает, происходит просто переключение картинки.
Анимация делается TweenMax'ом.
Сначала уезжает текущая картинка, и сразу приезжает следующая картинка.

Старый 15.02.2012, 15:53
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 5  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Как говориться : код в студию
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 15.02.2012, 15:57
peopleofdesign вне форума Посмотреть профиль Отправить личное сообщение для peopleofdesign Найти все сообщения от peopleofdesign
  № 6  
Ответить с цитированием
peopleofdesign

Регистрация: Mar 2009
Сообщений: 7
Какой вам ещё код нужен ? (я не с претензией, а именно вопрос какой код дать, не весь же сайт буду выкладывать).
привел код ресайзера и код прохода по контейнеру.

Старый 15.02.2012, 16:01
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 7  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Видимо код запуска анимации
__________________
http://www.chessmax.ru

Старый 15.02.2012, 16:04
peopleofdesign вне форума Посмотреть профиль Отправить личное сообщение для peopleofdesign Найти все сообщения от peopleofdesign
  № 8  
Ответить с цитированием
peopleofdesign

Регистрация: Mar 2009
Сообщений: 7
Всё, ) проблему нашёл... в ненужном месте вызывался ещё ресайзер...

Сори, что потратил ваше время. Спасибо за внимание.

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

Теги
AS3 , displayobject , Sprite
Опции темы
Опции просмотра

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

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


 


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


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