![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
У меня уже были вопросы на подобные темы, но вот, опять не могу додуматься, как...
Короче, есть такой цикл, вернее два: 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 его членов не определяется:( |
|
|||||
|
don't panic!
Регистрация: 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. |
|
|||||
|
Спасибо Nox, вернусь домой, попробую... :)
|
|
|||||
|
markUp = ["mc1", "mc9", "mc17", "mc25", "mc33"];
targets = []; for (i in markUp) { targets[markUp[i]] = this[markup[i]]; targets[markUp[i]]._x += dist_mc/2; } Спасибо еще раз, вот так сработало идеально, то что надо было:) |
|
|||||
|
Опять затупил... В продолжение темы: над всем этим массивом бегает мувик, на нем такое:
onClipEvent (enterFrame) { this._x = random(470); this._y = random(375); if (this.hitTest(_parent.targets)) { trace(_parent.targets); } } Трейсится только mc1 , в то время, как если просто в цикле в руте проверять(не хит тест), то возвращаются все члены targets. Тут тоже надо цикл создать или..? Голова болит...Не получается, пробовал сегодня полдня... |
|
|||||
|
don't panic!
Регистрация: 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. |
|
|||||
|
В этом случае не трейсится вообще ничего(( Самое смешное, что этот вариант я пробовал сегодня уже... Вообще мне нужно чтоб мувик пробегая над targets последовательно изменял свойства членов targets, а для начала я просто хотел через трейс посмотреть что вообще происходит и, либо, как я уже говорил, на выходе получаю: trace(_parent.targets) --> _level0.mc1 и все, то есть только первый член
targets, либо вообще ничего, как в твоем случае![]() |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
покажи весь скрипт дублирования + создания массива targets...
...все должно работать, чес слово ![]() |
|
|||||
|
Только не бей!
Короче, в первом и единственном фрейме: 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, из них складывается вся картинка.........аааааааааа |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ну вот видишь...
у тебя все работает на самом деле... ![]() ...только массивами пользоваться надо правильно ![]() |
![]() |
Часовой пояс GMT +4, время: 10:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|