Просмотр полной версии : Помогите, пожалуйста с галереей
Ребят, помогите пожалуйста. Дело в следующем.
Есть н-ное количество (больше 20) изображений одинакового размера в пикселях, хранящихся в библиотеке мувика. Нужно, чтобы при нажатии кнопок влево-вправо (вверх-вниз), эти изображения соответственно сменялись (и были, так сказать, в замкнутом круге).
Я так понимаю, что их можно "загнать в массив", но как это реализовать не имею понятия. :umnik2:
Пробовал один из примеров, предложенных в разделе "Исходники" (без массива), - получается нерентабельно; т.е. приходится разбивать фотки на группы 1..5, 5..9 и т.д.
Если Вам несложно, покажите на примере (или напишите, что где прописывать (включая кнопки "вперёд-назад")). Заранее благодарен. :rolleyes:
var maxframe = 6 // количество картинок (кадров в my_mc)
next_btn.onPress = function(){
if (my_mc._currentframe == maxframe) {
my_mc.gotoAndStop(1);
} else {
my_mc.nextFrame();
}
}
prev_btn.onPress = function(){
if (my_mc._currentframe == 1) {
my_mc.gotoAndStop(maxframe);
} else {
my_mc.prevFrame();
}
}
Все картинки загрузи в мувиулип покадрово, на каждый кадр повесь stop();
Мувиклип затащи на сцену и обзови там my_mc
Сделай две кнопки, назови их соотв. next_btn и prev_btn
Скрипт повесь на первый кадр, укажи в нем кол-во картинок maxframe и наслаждайся листалкой :)
Предлагаю такое:
var pictureBaseName:String = "pic";
var picturesNum:Number = 3;
var currentPicture:Number = 1;
attachCurrentPicture();
function updatePictureIndicator()
{
this.indicator.text = currentPicture + "/" + picturesNum;
}
function attachCurrentPicture()
{
var newPictureName:String = pictureBaseName + currentPicture;
this.attachMovie(newPictureName, newPictureName, this.getNextHighestDepth(), {_x:this.frame._x + 1, _y:this.frame._y + 1});
updatePictureIndicator();
}
function nextPicture()
{
var oldPictureName:String = pictureBaseName + currentPicture;
currentPicture = currentPicture + 1 > picturesNum ? 1 : currentPicture + 1;
attachCurrentPicture();
this[oldPictureName].removeMovieClip();
}
function previousPicture()
{
var oldPictureName:String = pictureBaseName + currentPicture;
currentPicture = currentPicture - 1 < 1 ? picturesNum : currentPicture - 1;
attachCurrentPicture();
this[oldPictureName].removeMovieClip();
}
this.nextButton.onRelease = function()
{
nextPicture();
}
this.previousButton.onRelease = function()
{
previousPicture();
}
Переменная pictureBaseName задаёт префикс идентификатора картинки в библиотеке. То есть, строка, содержащаяся в этой переменной, служит началом linkage id'а мувиклипов картинок в библиотеке. К этой строке прибавляется номер от 1-го до количества картинок (переменная picturesNum) и получается идентификатор необходимой картинки. Соответственно, картинки должны иметь идентификаторы для данного случая: pic1, pic2, pic3.
Исходник прикрепляю... Если будут вопросы, спрашивайте...
Я тоже так хотел :) Только необходимость создавать более 20-ти клипов в библиотеке меня остановила. Зачем, если можно один и с кодом, в котором даже котёнок разберется?
Ребят, спасибо огромное! Очень выручили (вдвоём).
Вопросов больше пока нет.
Ещё раз спасибо!
Wolsh, насчёт котёнка верно подмечено!
2 Wolsh:
Зачем 20? о_0
Для примера и 3-х хватит...
Открываешь file> new> Там будет вкладка >templates далее выбираешь в меню >foto Sladeshows
Это обычная форма вставленая во флэш. Стиль меняешь вставляешь свои фотки вот и все. Все вообщем легко!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.