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

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

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

Регистрация: Jan 2006
Сообщений: 5
Question drag&drop в прокручиваемом списке мувклипов

Всем привет.

1. Читаем txt файл
2. В массив его
3. На базе массива создаем динамически кнопки
4. Отображаем в окошке с скроллером эти кнопки списком
5. Когда хватаем одну кнопку и волокем ниже (выше), остальные соответсвенно смещаются на позицию, в которой та стояла.
6. Отслеживаем после перемещений новый список положения кнопок, который и гоним в переменную.

Вопрос, аднака, такой:
Есть ли что-либо похожее уже реализованное, (компонент какой)? Ежели нет, то хотя бы идейно, как это можно сделать (пп. 4-6).

Заранее благодарен всем за ответы.

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

Регистрация: Nov 2005
Сообщений: 221
Извини не понял:
Цитата:
остальные соответсвенно смещаются на позицию, в которой та стояла.
Какой в этих манипуляциях смысл? Какие потребности удовлетворяет эта функциональность? Рад бы подсказать готовое решение, но мне бы более общую картину...

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

Регистрация: Jan 2006
Сообщений: 5
Спасибо за быструю реакцию .

Перетасовать местами нужно кнопки. Было: 1,2,3,4,5. Стало, к примеру, 1,5,2,3,4. Вручную я знаю как задать: Позицию 5 переместить на Позицию 2, затем меняем позицию в массиве, формируем строковую переменную на базе массива. Но хочется простым "перетаскиванием" сделать.
Изображения
 


Последний раз редактировалось dimirlan; 12.01.2006 в 22:00.
Старый 12.01.2006, 22:00
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
опа, как заинтриговал..
вручную, значит, уже не подходит, а хочется каким-то простым "перетаскиванием"..

Старый 12.01.2006, 22:02
dimirlan вне форума Посмотреть профиль Отправить личное сообщение для dimirlan Найти все сообщения от dimirlan
  № 5  
Ответить с цитированием
dimirlan
 
Аватар для dimirlan

Регистрация: Jan 2006
Сообщений: 5
Ясно. Наверное плохо объяснил.

Грубо говоря есть таблица, каждая строка которой - кнопка (формируются динамически типа duplicateMovieClip). Мне нужно сделать, чтобы эта таблица прокручивалась скролом - раз, чтобы можно было менять кнопки местами "перетаскиванием" мышью - два, и чтобы отслеживались ID кнопок и я эту новую последовательность ID мог гнать в переменную - три.

Знаю как формировать таблицу текстовую, прокручиваемую (на базе стандартного компонента), но не знаю как реализовать на базе того же компонента динамическое формирование кнопок; знаю как менять местами в ней позиции строк и гнать этот список в переменную, но не догоняю как это реализовать drag-ом (отслеживать позицию по У, али как?).

Надеюсь, теперь ясно че хочу добиться. Если есть мысли какие - плз, пишите. Со всем уважением...


Последний раз редактировалось dimirlan; 13.01.2006 в 02:46.
Старый 13.01.2006, 11:36
KPaul вне форума Посмотреть профиль Отправить личное сообщение для KPaul Найти все сообщения от KPaul
  № 6  
Ответить с цитированием
KPaul
 
Аватар для KPaul

Регистрация: Nov 2005
Сообщений: 221
Используй дроптаргет.
Вот немного переделанный пример из хелпа:
Код:
origX = button1_mc._x;
origY = button1_mc._y;
button1_mc.onPress = function() {
    this.startDrag();
};
button1_mc.onRelease = function() {
    this.stopDrag();
    if (this._droptarget.indexOf("button")!=-1) {
    // Можно обойтись и без eval, но так нагляднее
    var target_mc = eval(this._droptarget);
    // Ну а дальше я думаю сообразишь
    } else {
    this._x = origX;
    this._y = origY;
    }
};

Старый 13.01.2006, 13:54
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
еще вариант (поживее):
при перетаскивании кнопки смотрим с кем из остальных хиттест, ну и отправляем ее на новое место..
Код:
import mx.transitions.*;
var nBut=5,buts=[],yPos=[],but=null, yGap=60, x0=50, y0=50
bPress=function(){
	this.startDrag(false,x0,yPos[0],x0,yPos[yPos.length-1]);
	this.onEnterFrame=function(){
		//смотрим с кем пересекаемся, кроме себя и кнопок не на месте
		for(var i=0;i<nBut;i++)	if(this!=buts[i] && this.hitTest(buts[i]) && buts[i]._y==yPos[buts[i].pos] )break;
		but=buts[i];
		if(!but)return;//если не с кем то выходим
		var tmp=but.pos;//меняемся позицией
		but.pos=this.pos,this.pos=tmp;
		new Tween(but, "_y", null, but._y, yPos[but.pos], 2);//двигаем на новую
	}
}
bRelease=function(){
	stopDrag();
	delete this.onEnterFrame;
	new Tween(this, "_y", null, this._y, yPos[this.pos], 1);//двигаем точно на позициюна 
}
//расставляем кнопки
for(var i=0;i<nBut;i++){
	yPos.push(y0+i*yGap);
	buts.push(this.attachMovie('but',i,i,{_x:x0,_y:yPos[i],id:'#'+i,pos:i,onPress:bPress,onRelease:bRelease,onReleaseOutside:bRelease}));
}
Вложения
Тип файла: zip Untitled-1.zip (7.9 Кб, 52 просмотров)

Старый 13.01.2006, 21:21
dimirlan вне форума Посмотреть профиль Отправить личное сообщение для dimirlan Найти все сообщения от dimirlan
  № 8  
Ответить с цитированием
dimirlan
 
Аватар для dimirlan

Регистрация: Jan 2006
Сообщений: 5
Большое спасибо, буду разбираться.

Старый 19.01.2006, 02:22
dimirlan вне форума Посмотреть профиль Отправить личное сообщение для dimirlan Найти все сообщения от dimirlan
  № 9  
Ответить с цитированием
dimirlan
 
Аватар для dimirlan

Регистрация: Jan 2006
Сообщений: 5
По умолчанию "Попутный" вопрос

Добрый день, Silin.

Ну, в принципе вроде понятно.

Не получается заставить работать вложенные кнопки.

Прилагаю fla.

Верхний объект тягается и кнопки в нем работают, а когда множу, как ты
написал, не пашет. Наверное, неправильно обращаюсь к клипам.
Тут оставил только "чистый" код - свои художества убрал.

Если не трудно, подскажи, как это сделать?

Спасибо, с уважением

Dimirlan.
Вложения
Тип файла: zip polebuttons.zip (63.6 Кб, 33 просмотров)

Старый 19.01.2006, 10:41
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
проблема в перекрытии 'мышиных' событий дочерних объектов событиями родителя: у 'верхнего объекта' они не определены - кнопки работают,
у кнопок, которые таскаешь определены - внутренние уже не работают
возможные решения:
-вешать перетаскивание кнопок не на них самих, а на мувик/кнопку внутри..
-определять нажатие на внутренние через хиттест с мышью..
зы: я тут по мотивам недавнего обсуждения похожего вопроса (поиск рулит) класс приспособил решать эту задачу, тож глянь..

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

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

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


 


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


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