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

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

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

Регистрация: Mar 2007
Сообщений: 2
Question Динамическая смена импортированной графики

Пытаюсь малой кровью решить такую задачку:

Как оно должно выглядеть:
Галерея картинок (количество непостоянно), которые появляются снизу, плывут наверх и изчезают. (слева направо тоже можно) При наведении курсора на область с роликом движение прекращается, при клике на картинке открывается некоторый URL. Всё!

Как мне это видется технически:
Посредством PHP из базы MySQL вытаскиваются имена файлов и URLы (ID), где-то, видимо, складируются, и в виде переменных передаются в ролик. Там они через рандомайзер динамично подгружаются (плюс сами картинки) на определённые места... ммм как бы точнее.... скажем, картинок у меня десятка три, но на экране отображаются 8-9. Значит, если я правильно понимаю, плодить нужно не тридцать слоёв, а просто регулярно заменять "отработанные" картинки на новые.

В чём проблема:
PHP, MySQL и HTML для меня - куст родной. С XML-ем тоже смогу поладить. А вот Flash'ем занимался последний раз лет 5-6 назад, опыт ущербно-зачаточный. Т.е. если со скриптом хоть кое-как и смогу разобраться, то с самим принципом построения - исключительная задница.

О чём прошу всех гуру:
Если есть подобный проектик на примете, да ещё чтоб можно было в исходнички заглянуть, дайте знать, а? Или стандарное какое-то решение. Если же ничего такого нет, подтолкните к правильному решению, алгоритмиком каким попотчуйте... От какой печки вообще плясать?

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

Регистрация: Feb 2007
Адрес: Москва
Сообщений: 128
poni-nelegal.narod.ru
это для примера фотогалереи. (изначально грузится XML откуда все собссно и берется)

384-673-669 - стучись, всё объясню

Данный пример в приложении

Хотя пример плохой наверное. попробуй так:
в любом случае картинки будут иметь примерно такие имена
от pic1 до pic(итой)
кроме того можно использовать ссылки на клипы
Вот такой код к примеру
Код:
stop();
import flash.display.BitmapData;
var Count:Number=7;


for (var i:Number=1;i<=Count;i++) {
	var t:MovieClip=this.createEmptyMovieClip("pic"+i, this.getNextHighestDepth()); // создаем указатель на созданный клип
             var myBitmapData:BitmapData = new BitmapData(20, 20, false, 0xFF0000);
	t.attachBitmap(myBitmapData, this.getNextHighestDepth());
	t.text.text=i;// условно загружаем картинку
	t._x = 20;
	t._y = i*50;
	
	t.onEnterFrame=function(){
		this._y+=1;
		if (this._y>364){
			this._y=20;
		}
	}
	
	t.onRollOver = function() {
		// глобальная остановка
		for (var i:Number=1;i<=Count;i++) {
			_root["pic"+i].onEnterFrame=function() {};
		}
		// какое то событие 1
		trace("Остановка картинок, мышка наведена на "+this+" картинку" );
	}
	
	t.onRollOut = function() {
		// глобальная "поехали"
		for (var i:Number=1;i<=Count;i++) {
			_root["pic"+i].onEnterFrame=function() {
				this._y+=1;
				if (this._y>364){
					this._y=20;
				}
			}
		}
		// какое то событие 2
		trace("Картинки поехали, мышка убрана с "+this+" картинки" );
	}

	t.onPress=function(){
		// какое то событие 3
		trace("Загрузка картинки, мышка нажата на "+this+" картинку" );
	}
	
}
Вместо простого цикла for используй обход XML дерева, а вместо
Код:
             var myBitmapData:BitmapData = new BitmapData(20, 20, false, 0xFF0000);
	t.attachBitmap(myBitmapData, this.getNextHighestDepth());
Используй внтурисозданный клип + загрузка в него картинки c урла полученного из XML дерева
Вложения
Тип файла: zip sample1.zip (48.6 Кб, 88 просмотров)
__________________
| -=[JOB]=- | -=MyWay=- |


Последний раз редактировалось Север; 23.03.2007 в 20:11.
Старый 23.03.2007, 20:15
Dimanoss вне форума Посмотреть профиль Отправить личное сообщение для Dimanoss Найти все сообщения от Dimanoss
  № 3  
Ответить с цитированием
Dimanoss

Регистрация: Mar 2007
Сообщений: 2
пример, кстати, отдалённо напоминает то, что нужно. Спасибо.

а вот имена картинок потому и приходится брать из базы, что никакой системы в них нет, всё максимально хаотично...

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

Регистрация: Feb 2007
Адрес: Москва
Сообщений: 128
Вы не поняли.
Имена клипов, в которые загружены ваши картинки, как раз будут структурированны, так как будут создаваться динамически в циклическом обходе вами созданного XML дерева.

Просмотрите у себя еще раз вот этот пример (просто кинть код на первом кадре
Код:
stop();
import flash.display.BitmapData;
var Count:Number=7;


for (var i:Number=1;i<=Count;i++) {
	var t:MovieClip=this.createEmptyMovieClip("pic"+i, this.getNextHighestDepth()); // создаем указатель на созданный клип
             var myBitmapData:BitmapData = new BitmapData(20, 20, false, 0xFF0000);
	t.attachBitmap(myBitmapData, this.getNextHighestDepth());
	t.text.text=i;// условно загружаем картинку
	t._x = 20;
	t._y = i*50;
	
	t.onEnterFrame=function(){
		this._y+=1;
		if (this._y>364){
			this._y=20;
		}
	}
	
	t.onRollOver = function() {
		// глобальная остановка
		for (var i:Number=1;i<=Count;i++) {
			_root["pic"+i].onEnterFrame=function() {};
		}
		// какое то событие 1
		trace("Остановка картинок, мышка наведена на "+this+" картинку" );
	}
	
	t.onRollOut = function() {
		// глобальная "поехали"
		for (var i:Number=1;i<=Count;i++) {
			_root["pic"+i].onEnterFrame=function() {
				this._y+=1;
				if (this._y>364){
					this._y=20;
				}
			}
		}
		// какое то событие 2
		trace("Картинки поехали, мышка убрана с "+this+" картинки" );
	}

	t.onPress=function(){
		// какое то событие 3
		trace("Загрузка картинки, мышка нажата на "+this+" картинку" );
	}
	
}
Вместо простого цикла for используй обход XML дерева, а вместо

Код:
             var myBitmapData:BitmapData = new BitmapData(20, 20, false, 0xFF0000);
	t.attachBitmap(myBitmapData, this.getNextHighestDepth());
Используй внтурисозданный клип + загрузка в него картинки c урла полученного из XML дерева
__________________
| -=[JOB]=- | -=MyWay=- |

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

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

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


 


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


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