Вход

Просмотр полной версии : Фотогалерея


Tati7
03.12.2008, 03:01
Добрый день!

Помогите, пожалуйста, разобраться. Пытаюсь сделать фотогаллерею и не получается. Прикладываю свой пример. Для работы просто необходимо разобраться что я не так делаю :)


Заранее спасибо!

arialix
03.12.2008, 11:47
А какие фотки куда ставить? Что конкретно не получается?

Tati7
03.12.2008, 14:29
Задумка такова: в главном меню нажать на один из заголовков (я пока вложила только 4 фото мальчика, рабочий только Adrian), должно выводить 4 маленьких preview слева от рамки с белым ободком, после чего нажимаешь на priview, далее выводит фото в основной рамке. Actionscript я, наверное, неправильно прописала, потому что ничего не выводит никуда :(

zurkis
03.12.2008, 14:50
так ну attach есть и все, для вывода и отображения ничего нет

Tati7
03.12.2008, 15:19
А как надо сделать?

Добавлено через 48 часов 2 минуты
Пожалуйста, помогите разобраться!

regman
12.01.2011, 17:41
меня интересует внутренняя организация фотогалереи с 10-15 фото и предзагрузчиком. А именно, как лучше, то есть как организовать сами фото во флэше?? Грузить их все на 1 слой первого кадра, а потом кнопками вперед/назад просто перемещать их вверх/вниз по слоям?? Или лучше грузить в отдельные кадры мувика?? Ну и в перспективе при каких раскладах потом можна будет удобнее добавлять разные эффекты?

mooncar
12.01.2011, 17:50
Можно сперва все загрузить в прелоадере, картинки отрисовать в битмапу. А потом по мере необходимости аттачить битмапу.
На форуме были примеры.
Кстати, для смены слайдов и эффекты битмапные тогда можно будет прикрутить. Как у silin'a (http://www.silin.su/#AS2/changer).
Только у него вроде бы картинки в библиотеке, но можно сделать как я сказал - битмапу использовать из массива, куда занести ее при загрузке.

Загрузить что-то в какой-то опр. кадр нельзя. Да и не нужно несколько кадров, достаточно одного кадра. Ну или двух - для предзагрузчика и основной.
Или трех - для предзагрузчика, второй - для экспортируемых классов и основной.

regman
13.01.2011, 13:16
Можно поподробнее насчет "отрисовать в битмапу". Загрузка для отрисовки в битмапу производится в новосозданный контейнер или в существующий?? Видел примеры что грузят в новосозданный мувиклип специально для этой цели. А зачем, если есть существующий?? Какая разница??
Дальше загрузили, перебитмапили в массив. Кула потом деваются эти новосозданные мувиклипы, если мы все равно будем при просмотре фото подгружать в основной контейнер?

mooncar
13.01.2011, 13:21
Создаем временный мувик, делаем невидимым, чтобы не мелькало, грузим картинку, отрисовываем в битмапу, заносим в массив, удаляем временный мувик.

Вот топики по сходной тематике: Раз (http://www.flasher.ru/forum/showthread.php?t=134171), Два
(http://www.flasher.ru/forum/showthread.php?t=141387)

regman
13.01.2011, 17:15
сделал вроде. Но не аттачит. Первую картинку грузит, а на нажатие кнопки не реагирует. Только в левом верхнем углу поялвяется белый прямоугольник, размерами в 3-4 раза меньше.
import flash.display.BitmapData;

var arNames:Array = [];
var arFiles:Array = [];
var bmpArray:Array = [];
var imgIndex:Number = 0;
var arFilesL:Number = 0;

var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load('descr.xml');

var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
loader.addListener(listener);
listener.onLoadInit = function(holder:MovieClip) {
holder._height = 375;
holder._width = 500;
};

function loadXML (success:Boolean)
{
if (success)
{
var node:XMLNode = this.firstChild ;
var total:Number = node.childNodes.length ;
for( i = 0; i < total; i++)
{
var fName:String = node.childNodes[i].attributes['name'];
var fFile:String = node.childNodes[i].attributes['file'];

arNames[i] = fName;
arFiles[i] = fFile;
trace("arNames["+i+"] = "+fName);
trace("arFiles["+i+"] = "+fFile);
};
var bmpData:BitmapData = new BitmapData(500, 375, false);
arFilesL = arFiles.length;
var tempMC:MovieClip = _root.CreateEmptyMovieClip("tempMC",_root.GetNextHighestDepth()) ;

for (i = 0; i < arFilesL-1; i++)
{
_root.tempMC.loadClip(arFiles[i]);
bmpData.draw(tempMC);
bmpArray[i] = bmpData;
trace(bmpArray[i]);
}
_root['Display'].text = arNames[0];
_root.loader.loadClip(arFiles[0], "holder");
//trace(arFilesL);
}
};

nextPic.onPress = function ()
{
trace(imgIndex);
trace(arFilesL);
if (imgIndex < arFilesL-1)
{
imgIndex++;
_root.holder.attachBitmap(bmpArray[imgIndex], 0); //тут не срабатывает, висит та же первая картинка.
_root['Display'].text = arNames[imgIndex]; //надписи отображаются нормально
}
};