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

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

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

Регистрация: Mar 2010
Сообщений: 30
По умолчанию как обратно пролистать?(массивы, кнопки, картинки)

Привет! Есть код:

Код AS1/AS2:
picturesArray=["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"];
itemCounterPicture=0;
 
mc = attachMovie("mc","smc",_root.getNextHighestDepth(),{_x:100,_y:100});
mc2 = attachMovie("mc","smc2",_root.getNextHighestDepth(),{_x:200,_y:100});
_root.createEmptyMovieClip("frameForShow",11);
 
function nextImg(){
	mc.onPress=function(){
		frameForShow.loadMovie(picturesArray[itemCounterPicture]);
		itemCounterPicture++;
		trace(itemCounterPicture);
			if(itemCounterPicture >= (picturesArray.length)){
				itemCounterPicture=0;
			}
	}
}
function backImg(){
	mc2.onPress=function(){
		frameForShow.loadMovie(picturesArray[itemCounterPicture]);
		itemCounterPicture--;
		trace(itemCounterPicture);
			if(itemCounterPicture <= -1){
				itemCounterPicture=3;
 
			}
 
	}
}
 
function functionObj(){
	nextImg();
	backImg();
}
 
functionObj();
в этом коде я создаю 2 кнопки и один пустой мувик в который будет загружаться картинки из массива(по нажатию на кнопки).
предполагается, что это простой код, простой галереи с кнопками "назад" и "вперед".

mc - (показывает след. картинку)шагает по массиву в перед(если cначала нажимать на mc2, а потом нажать на mc, то получиться тоже что и с mc2).
mc2 - (показывает предыдущую)должен шагать по массиву назад, но это происходит очень странно(сначала показывается следующая картинка, потом уже он начинает листать назад)

как сделать так, что бы кнопки работали нормально? или почему кнопки себя так ведут(нет, понято, что текущий слайд зависит от значения itemCounterPicture, но, как правильно им управлять, я уверен, что опытные флешеры знают как это просто.)?

АААааа! я себе уже всю голову сломал!

Добавлено через 1 час 42 минуты
блин! или скажите, где есть подобный код, или что почитать, или как это лучше делается?

Добавлено через 1 час 50 минут
я еще пробавал, делать три функции "след.картинка", "предыдущая" и "показ слайдов"

в кнопках, менял значение itemCounterPicture, а в "показСлайдов" с onEnterFrame отслеживал изменения значения itemCounterPicture, но frameForShow.loadMovie(picturesArray[itemCounterPicture]); видемо с onEnterFrame не работает(показывает ошибку).


Последний раз редактировалось Blackjack1616; 24.04.2010 в 17:50.
Старый 24.04.2010, 18:50
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Код AS1/AS2:
picturesArray=["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg"];
itemCounterPicture = -1;//для корректной первой загрузки, что бы загрузилось именно 1.jpg
 
mc = attachMovie("mc", "smc", _root.getNextHighestDepth(), {_x:200, _y:100});//тут были не правильные координаты, кнопка "крутить вправо", находилась слева
mc2 = attachMovie("mc", "smc2", _root.getNextHighestDepth(), {_x:100, _y:100});//поменял местами
_root.createEmptyMovieClip("frameForShow",-11);// чтобы копки были выше изображения
//функции которые прокручивают картинки
function nextImg() {
 
	itemCounterPicture++;
 
	if (itemCounterPicture > (picturesArray.length - 1)) {
		itemCounterPicture = 0;
	}
	trace(itemCounterPicture);
	frameForShow.loadMovie(picturesArray[itemCounterPicture]);
 
}
function backImg() {
	itemCounterPicture--;
 
	if (itemCounterPicture < 0) {
		itemCounterPicture = picturesArray.length - 1;
 
	}
	trace(itemCounterPicture);
	frameForShow.loadMovie(picturesArray[itemCounterPicture]);
 
}
//при нажатии кнопок туда-сюда, срабатывают нужные функции
mc.onPress = function() {
	nextImg();
};
mc2.onPress = function() {
	backImg();
};
// при загрузки флешки, первое изображение появляется автоматом
nextImg();
p.s. Лучше для загрузки пользоваться MovieClipLoader

Старый 24.04.2010, 19:49
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 3  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
Большое Тебе спасибо! Все работает, все объяснил!
(ушел на дэмиарт читать про таинственный, всемогущий класс MovieClipLoader)

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
На здоровье!

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

Теги
array , галерея , картинки , массив , назад

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

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


 


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


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