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

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

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

Регистрация: Mar 2007
Сообщений: 46
По умолчанию прокрутка клипов функцией onMouseWheel

не могу понять что не так делаю в onMouseWheel ? вниз кручу нормально, а вверх нет.
пробовал уже по разному... ошибка рядом, а где не вижу...
Код:
var grund:MovieClip = this.createEmptyMovieClip("grund", 1);
var zone:MovieClip = box(grund, 660, 490, Math.random()*0xFFFFFF, 0);
grund._x = Stage.width/2-grund._width/2;
var items:Array = new Array();

for (var i:Number = 0; i<10; i++) {
	var boxi:MovieClip = box(zone, 660, Stage.height/3, Math.random()*0x0000CC, 100);
	boxi._y = boxi._height*i;
	var pic:MovieClip = box(boxi, 180, 120, Math.random()*0xF5F5F5, 100);
	pic._x = pic._y=20;
	items.push(boxi);
}

var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheel) {
	for (var i:Number = 0; i<items.length; i++) {
		items[i]._y += int(boxi._height);
	}
	var per:MovieClip = items[0];
	var posl:MovieClip = items[items.length-1];
	trace(per);
	if (wheel>0) {
		per._y = -posl._y+posl._height;
		var boxi:Object = items.shift();
		items.push(boxi);

		trace("Крутим колесо вверх");
	} else {
		posl._y = per._x-posl._height;
		var boxi:Object = items.pop();
		items.unshift(boxi);

		trace("Крутим колесо вниз");
	}
};
Mouse.addListener(mouseListener);


function box(_tar:MovieClip, width:Number, height:Number, fon:Number, alf:Number):MovieClip {
	var depth:Number = _tar.getNextHighestDepth();
	var mc:MovieClip = _tar.createEmptyMovieClip("mc_"+depth, depth);
	mc.beginFill(fon,alf);
	mc.moveTo(0,0);
	mc.lineTo(width,0);
	mc.lineTo(width,height);
	mc.lineTo(0,height);
	mc.lineTo(0,0);
	mc.endFill();
	return mc;
}

Старый 01.11.2008, 19:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Неудивительно, ведь у всех items «_y» только прибавляется.

Старый 01.11.2008, 19:13
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Для начала надо сделать просто вверх вниз, а потом уже циклить.

И не понимаю, как координата x может влиять на y?
Код:
posl._y = per._x-posl._height;
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Mar 2007
Сообщений: 46
а можно еще как то помочь?
в первом условии сделал if (wheel< -per) {...}
а у меня один клип куда то девается при прокрутки сначала.

Добавлено через 2 минуты
iNils спасибо поправил на «_y», перестал пропадать клип.
__etc кажется я поторопился... теперь у меня все клипы двигаются вниз... попробую совет iNils
если есть еще советы я выслушаю, потому что я еще не до конца понял


Последний раз редактировалось DrugON; 01.11.2008 в 19:43. Причина: Добавлено сообщение
Старый 07.11.2008, 18:27
DrugON вне форума Посмотреть профиль Отправить личное сообщение для DrugON Найти все сообщения от DrugON
  № 5  
Ответить с цитированием
DrugON
 
Аватар для DrugON

Регистрация: Mar 2007
Сообщений: 46
У меня вот такой ужас('море' циклов) получился... причем вроде даже работает
как правильно сделать? нужен совет и какой-нибудь пример. Спасибки!
Код:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(wheel) {
	var per:MovieClip = items[0];
	var posl:MovieClip = items[items.length-1];
	var ss = posl._y+posl._height;
	if (wheel<0) {
		for (var i:Number = 0; i<items.length; i++) {
			items[i]._y -= 20;
		}
	} else {
		for (var i:Number = 0; i<items.length; i++) {
			items[i]._y += 20;
		}
	}
	if (per._y == 20) {
		for (var i:Number = 0; i<items.length; i++) {
			items[i]._y -= 20;
		}
	} else if (Stage.height>=ss) {
		for (var i:Number = 0; i<items.length; i++) {
			items[i]._y += 20;
		}
	}
	//updateAfterEvent();   
};
Mouse.addListener(mouseListener);

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А держать все клипы в одном большом и его туды-сюды не пробовали? ))))
__________________
Reality.getBounds(this);

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

Регистрация: Mar 2007
Сообщений: 46
Цитата:
Сообщение от Wolsh Посмотреть сообщение
А держать все клипы в одном большом и его туды-сюды не пробовали? ))))
пробовал... но тогда все куда-то смещается, такое ощущение что цикл повторяется два раза. или накладывается... еще не понял

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

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

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


 


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


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