![]() |
опять про м
У меня уже были вопросы на подобные темы, но вот, опять не могу додуматься, как...
Короче, есть такой цикл, вернее два: 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 его членов не определяется:( |
после циклов с дублированием пишем
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, вернусь домой, попробую... :)
|
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. Тут тоже надо цикл создать или..? Голова болит...Не получается, пробовал сегодня полдня... |
Код:
onClipEvent (enterFrame) {то что трейсятся все элементы массива сразу ты не удивляйся... если сделать x = ["a", "b", "c", "d"]; trace(x); это все равно что сделать x = ["a", "b", "c", "d"]; z = x.toString(); trace(z); ...просто трейс все что ему дают преобразует к строке и потом выдает :) |
В этом случае не трейсится вообще ничего(( Самое смешное, что этот вариант я пробовал сегодня уже... Вообще мне нужно чтоб мувик пробегая над targets последовательно изменял свойства членов targets, а для начала я просто хотел через трейс посмотреть что вообще происходит и, либо, как я уже говорил, на выходе получаю: trace(_parent.targets) --> _level0.mc1 и все, то есть только первый член:) targets, либо вообще ничего, как в твоем случае:(
|
покажи весь скрипт дублирования + создания массива 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, из них складывается вся картинка.........аааааааааа |
Вложений: 1
ну вот видишь... :) у тебя все работает на самом деле... :)
...только массивами пользоваться надо правильно ;) |
| Часовой пояс GMT +4, время: 11:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.