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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
По умолчанию опять про &#1084

У меня уже были вопросы на подобные темы, но вот, опять не могу додуматься, как...
Короче, есть такой цикл, вернее два:

dist_mc = mc._width*2;
zahl_mc_x = 5;
zahl_mc_y = 8;
level = 0;
for (i=0; i<zahl_mc_x; i++) {
for (k=0; k<zahl_mc_y; k++) {
duplicateMovieClip(mc, "mc"+level, level);
mc = this["mc"+level];
mc._x = dist_mc*i
mc._y = (dist_mc/2)*k
level++;
}
}

Мне надо вытащить из массива mc, к примеру, следующие члены: m1, m9, m17, m25, m35,... и тд( еще штук этак 20), с тем чтоб двигать их потом по иксу независимо от других членов массива mc. Я пытался создать из них новый массив, но не смог, не выходит, вернее, массив как бы создается, но значение _x его членов не определяется:(

Старый 23.07.2002, 19:07
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
после циклов с дублированием пишем

markUp = [1, 9, 17, 25, 35];
targets = [];
for (i in markUp) { targets.push(this["mc"+markup[i]]); }
trace(target[1]._x);

в массиве targets получаем ссылки...

или так:

markUp = ["mc1", "mc9", "mc17", "mc25", "mc35"];
targets = [];
for (i in markUp) {targets[markUp[i]] = this[markup[i]];}
trace(targets["mc9"]._x);

получаем хэш из ссылок


Последний раз редактировалось Nox Noctis; 23.07.2002 в 19:11.
Старый 23.07.2002, 19:11
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 3  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Спасибо Nox, вернусь домой, попробую... :)

Старый 23.07.2002, 21:42
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 4  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
markUp = ["mc1", "mc9", "mc17", "mc25", "mc33"];
targets = [];
for (i in markUp) {
targets[markUp[i]] = this[markup[i]];
targets[markUp[i]]._x += dist_mc/2;
}
Спасибо еще раз, вот так сработало идеально, то что надо было:)

Старый 24.07.2002, 20:45
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 5  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Опять затупил... В продолжение темы: над всем этим массивом бегает мувик, на нем такое:
onClipEvent (enterFrame) {
this._x = random(470);
this._y = random(375);
if (this.hitTest(_parent.targets)) {
trace(_parent.targets);
}
}
Трейсится только mc1, в то время, как если просто в цикле в руте проверять(не хит тест), то возвращаются все члены targets. Тут тоже надо цикл создать или..? Голова болит...Не получается, пробовал сегодня полдня...

Старый 24.07.2002, 20:55
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Код:
onClipEvent (enterFrame) {
	_x = random(470);
	_y = random(375);
	for (i in _parent.targets) {
		if (this.hitTest(_parent.targets[i])) {
			trace(_parent.targets[i]);
		}
	}
}
если массив таргетов нужен только этому мувику, то лучше в нем его и создать... чтобы сократить расход времени на адресацию.

то что трейсятся все элементы массива сразу ты не удивляйся...
если сделать
x = ["a", "b", "c", "d"];
trace(x);
это все равно что сделать
x = ["a", "b", "c", "d"];
z = x.toString();
trace(z);
...просто трейс все что ему дают преобразует к строке и потом выдает


Последний раз редактировалось Nox Noctis; 24.07.2002 в 20:59.
Старый 24.07.2002, 21:21
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 7  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
В этом случае не трейсится вообще ничего(( Самое смешное, что этот вариант я пробовал сегодня уже... Вообще мне нужно чтоб мувик пробегая над targets последовательно изменял свойства членов targets, а для начала я просто хотел через трейс посмотреть что вообще происходит и, либо, как я уже говорил, на выходе получаю: trace(_parent.targets) --> _level0.mc1 и все, то есть только первый член targets, либо вообще ничего, как в твоем случае

Старый 25.07.2002, 00:29
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
покажи весь скрипт дублирования + создания массива targets...

...все должно работать, чес слово

Старый 25.07.2002, 00:50
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 9  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Только не бей!

Короче, в первом и единственном фрейме:

rot._x = -500;
gruen._x = -500;
dist_mc = rot._width*2;
zahl_mc_x = 5;
zahl_mc_y = 8;
levelrot = 0;
for (i=0; i<zahl_mc_x; i++) {
for (k=0; k<zahl_mc_y; k++) {
duplicateMovieClip(rot, "rot"+levelrot, levelrot);
rot = this["rot"+levelrot];
rot._x = dist_mc/4+dist_mc*i;
rot._y = dist_mc/4+(dist_mc/2)*k;
levelrot++;
}
}
markUprot = ["1", "9", "17", "25", "33", "3", "5", "7", "11", "13", "15", "19", "21", "23", "27", "29", "31", "35", "37", "39"];
targetsrot = [];
for (i in markUprot) {
targetsrot = this["rot"+markUprot[i]];
targetsrot._x += dist_mc/2;
}
// ::::::::::::::::::::::::::::::::::
levelgruen = 40;
for (i=0; i<zahl_mc_x; i++) {
for (k=0; k<zahl_mc_y; k++) {
duplicateMovieClip(gruen, "gruen"+levelgruen, levelgruen);
gruen = this["gruen"+levelgruen];
gruen._x = dist_mc/4+dist_mc*i;
gruen._y = dist_mc/4+(dist_mc/2)*k;
levelgruen++;
}
}
markUpgruen = ["40", "42", "44", "46", "48", "50", "52", "54", "56", "58", "60", "62", "64", "66", "68", "70", "72", "74", "76", "78"];
targetsgruen = [];
for (i in markUpgruen) {
targetsgruen = this["gruen"+markUpgruen[i]];
targetsgruen._x += dist_mc/2;
}

На мувике, который рэндомно движется над квадратами расставленными верхним кодом, как ты сказал:

onClipEvent (enterFrame) {
_x = random(470);
_y = random(375);
for (i in _parent.targets) {
if (this.hitTest(_parent.targets[i])) {
trace(_parent.targets[i]);
}
}
}

Я взял для примера только массив targetsrot, вернее подмассив, так? Но там еще есть подмассив targetsgruen, из них складывается вся картинка.........аааааааааа

Старый 25.07.2002, 02:20
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 10  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ну вот видишь... у тебя все работает на самом деле...
...только массивами пользоваться надо правильно
Вложения
Тип файла: zip derhab.zip (4.0 Кб, 66 просмотров)

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

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

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


 


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


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