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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.02.2010, 01:36
  № 1  
Ответить с цитированием
Rosco
Guest

Сообщений: n/a
По умолчанию Плавная смена картинок из xml

Привет!
Есть 5 картинок, которые загружаются из xml...надо сделать так, чтобы они разворачивались на весь экран и растягивались при масштабировании окна браузера...отображались примерно 5 секунд и плавно затухали. На смену одной картинке должна приходить другая...
Вопросы вызывают следующие моменты:
1. Как сделать плавное затухание и появление объектов, а также их смену. И ещё одно - надо сделать так, чтобы слайдшоу начиналось сразу после загрузки первой картинки, т.е. если 2 картинка не загрузилась - она просто не проигрывается и первая картинка остаётся пока вторая не загрузилась...и т.д.
2. Как реализовать для этого массива картинок опцию allowSmoothing...т.е. чтобы они после загрузки в флеш становились сглаженными?
В принципе кое что получилось сделать, но только для одной картинки...подскажите как проделать тоже самое с массивом!
Вот код на этот момент(архив проекта прикреплён):
Код AS1/AS2:
import flash.display.*;
import mx.transitions.Tween;
 
Stage.scaleMode = "noScale";
Stage.align = "TL";
 
function loadBitmapSmoothed(url:String, target:MovieClip) 
{
	var bmc:MovieClip = target.createEmptyMovieClip("bmc", target.getNextHighestDepth());
	var listener:Object = new Object();
	listener.tmc = target;
listener.onLoadInit = function(mc:MovieClip) 
	{
		mc._visible = false;
		var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
		this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(), "auto", true);
		bitmap.draw(mc);
	}
	var loader:MovieClipLoader = new MovieClipLoader();
	loader.addListener(listener);
	loader.loadClip(url, bmc);
}
	_root.createEmptyMovieClip("myBG", getNextHighestDepth());
 
	loadBitmapSmoothed("Sunrise.jpg",myBG);
	myBG._xscale = 250;
	myBG._yscale = 250;
 
	function resizeBg():Void
{
		var a:Number;
		if(Stage.width > 1000)
		{
		a = myBG._width/ myBG._height;
		myBG._width = Stage.width;
		myBG._height = myBG._width / a;
		trace(myBG._width/myBG._height);
		}
}
 
resizeBg();
 
onResize = function()
{
	resizeBg();
}
 
Stage.addListener(this);
Вобщем тут ещё одна проблемка иногда возникает - если пытаюсь обратиться к свойствам _width или _height для myBG - вот эта строка
Код AS1/AS2:
trace(myBG._width/myBG._height);
начинает выдавать Infinity! Интересно почему так?
Вложения
Тип файла: rar SmoothingExternal.rar (33.5 Кб, 53 просмотров)

Старый 17.02.2010, 01:42
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ответ на (2):
Код AS1/AS2:
listener.onLoadInit = function(mc:MovieClip) 
	{
        mc.forceSmoothing = true ;
        .
        .
По остальному сейчас не скажу.. А вопрос вам - зачем вы собираетесь на каждую картинку свой обработчик и свой MCL создавать, когда достаточно одного MCL и одного onLoadInit?

Цитата:
Сообщение от Rosco Посмотреть сообщение
Вобщем тут ещё одна проблемка иногда возникает - если пытаюсь обратиться к свойствам _width или _height для myBG - вот эта строка
Код AS1/AS2:
trace(myBG._width/myBG._height);
начинает выдавать Infinity! Интересно почему так?
А что вы хотели? У вас myBG - пустой мувик, какие у него ширина и высота могут быть?
Вы же resize() еще до загрузки контента в myBG вызываете...


Последний раз редактировалось mooncar; 17.02.2010 в 01:51.
Старый 17.02.2010, 11:35
  № 3  
Ответить с цитированием
Rosco
Guest

Сообщений: n/a
Цитата:
А что вы хотели? У вас myBG - пустой мувик, какие у него ширина и высота могут быть?
Прикол в том, что если ставить допустим _xscale - то всё работае нормально! Так что, получается весь вызов надо делать в функции onLoadInit?
Цитата:
А вопрос вам - зачем вы собираетесь на каждую картинку свой обработчик и свой MCL создавать, когда достаточно одного MCL и одного onLoadInit?
Та в том то и дело, что мне нужно это сделать как можно меньшим кол-вом кода, т.е. одного MCL и одного onLoadInit вполне достаточно! Вопрос как раз в том, как это сделать имея массив с XML инфой!


Последний раз редактировалось Rosco; 17.02.2010 в 11:38.
Старый 17.02.2010, 13:10
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от Rosco Посмотреть сообщение
Прикол в том, что если ставить допустим _xscale - то всё работае нормально! Так что, получается весь вызов надо делать в функции onLoadInit?
И никак иначе. Жалко, что вы это сразу не знали.
Либо все операции - внутри onLoadInit, либо старт нужных функций для обработки - оттуда. Можно вызвать какую-либо внешнюю функцию, передав ей аргументом сам mс, контейнер, который был аргументом в onLoadInit.

И кстати, насчет _xscale и _yscale - эти свойства определить для пока пустого мувика-контейнера можно, и они возымеют действие после загрузки контента. Так же, как и координаты контейнера можно менять до загрузки и еще кое-какие свойства, например, фильтры налагать до загрузки тоже можно.
Все остальное - только после загрузки. Разберетесь, думаю..


Последний раз редактировалось mooncar; 17.02.2010 в 13:12.
Старый 17.02.2010, 14:45
  № 5  
Ответить с цитированием
Rosco
Guest

Сообщений: n/a
Большое спасибо, mooncar! Сегодня вечером попробую, отпишу что получилось! Остаётся вопрос по поводу плавного перетекания и массива!

Старый 17.02.2010, 14:49
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
По этому вопросу есть хорошие решения с использованием класса Tween и массивов.

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

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

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


 


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


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