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

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

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

Регистрация: May 2007
Сообщений: 46
По умолчанию Галерея на XML

Проблема возникла у меня.... буду очень признателен, если в мне поможете. Хочу сделать галерею на флеше с использованием XML (все фотки через неё грузятся), и у меня ступор возник на ранних стадиях. Фоток будет много, но в одном ряду их может быть не больше 5. То есть 6-ая перекидывается на новую строчку. Но это у меня не полуяается осуществить...

Код:
function loadXML(loaded) {
	if (loaded) {
		xmlNode = this.firstChild;
		image = [];
		total = xmlNode.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
			description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
		}
		LoadImages();
	} else {
		
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("image.xml");

/////////////////////////////////////

/////////////////////////////////////
	p = 0;
	g = 150;
	j = 0;
function LoadImages() {

	//total = 7;
	for (i=0; i<total; i++) {
		//while (j<=6) {
			var line:MovieClip = this.createEmptyMovieClip('my_mc'+i,this.getNextHighestDepth());
			line.loadMovie(image[i],i);
			j++;
	    if(j > 4) {
			line._y = g;
			g = g + 150;
			p = 0;
			line._x = p;
			j = 0;
			//line._y = g;
			//line._x = p;
		}
		else {
			line._x = p;
			p = p + 150;

		}

	}
		

}
//}

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

Регистрация: Jun 2006
Адрес: crimea
Сообщений: 69
Отправить сообщение для Fann с помощью ICQ
замени условие j>4 на i%4==0


Последний раз редактировалось Fann; 17.03.2008 в 01:28.
Старый 17.03.2008, 01:39
Altera Pars вне форума Посмотреть профиль Отправить личное сообщение для Altera Pars Найти все сообщения от Altera Pars
  № 3  
Ответить с цитированием
Altera Pars

Регистрация: May 2007
Сообщений: 46
Не работает...

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

Регистрация: Mar 2008
Сообщений: 6
Я вот одного не понимаю, ты определяешь и заполняешь массив images в loadXML()... LoadImages() обращется тоже к массиву images... переменная images глобальная?

Старый 17.03.2008, 03:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
var total:Number = 21;
var limit:Number = 5;

var m:Number = Math.floor(total / limit) + 1;
var n:Number = limit;

var c:Number = 0;

var currentX:Number = 0;
var currentY:Number = 0;
var cellHeight:Number = 50;
var cellWidth:Number = 50;

for (var i:Number = 0; i < m; i++)
{
	for (var j:Number = 0; j < n; j++)
	{
		if (++c > total)
			break; // return
			
		var movieClip:MovieClip = attachMovie("movieClip", "movieClip" + i + j, getNextHighestDepth());
		movieClip._x = currentX;
		movieClip._y = currentY;
		
		currentX += cellWidth;
	}
	currentX = 0;
	currentY += cellHeight;
}
Зачем сначала массив создавать, а потом на основании этого массива галерею выстраивать, если можно сразу на основе xml ее построить?


Последний раз редактировалось udaaff; 17.03.2008 в 03:03.
Старый 17.03.2008, 18:06
Altera Pars вне форума Посмотреть профиль Отправить личное сообщение для Altera Pars Найти все сообщения от Altera Pars
  № 6  
Ответить с цитированием
Altera Pars

Регистрация: May 2007
Сообщений: 46
Почему действия раздаются только последней картинке?!?!
Код:
line=this.createEmptyMovieClip("clip"+i, i);
new_line = line.createEmptyMovieClip("mc_clip"+i, line.getNextHighestDepth());
          new_line.loadMovie(image[i],i);
          varLineCount = Math.floor(i/5);
          line._y = varLineCount*(150);
          line._x = i%5*(150);
          line.onPress = function() {
               new_line.startDrag();
          }
          line.onRelease = function() {
               line.stopDrag();
          }

     }
}

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
line.onPress = function()
{
    this.startDrag();
}
line.onRelease = function()
{
    this.stopDrag();
}

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

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

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


 


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


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