PDA

Просмотр полной версии : Уважаемые знатотки . . .


kimmo
02.08.2002, 16:08
Есть код:

onClipEvent (enterFrame) {
if (!_root.lastEnemy) {
if (random(30) == 4) {
enemyName = "enemy" add Number(_root.depth);
trace(enemyName);
duplicateMovieClip("_root.m-target", enemyName, _root.depth);
setProperty(enemyName, _y, _root.depth*10);
trace(getProperty(enemyName, _y));
_root.depth++;
_root.lastEnemy = 100;
}
} else {
_root.lastEnemy--;
}
}

и всё бы хорошо, но setProperty не работат,
а trace(getProperty(enemyName, _y)); выдает undefined

внимание, вопрос: в чём проблема?

Nox Noctis
02.08.2002, 16:37
onClipEvent (enterFrame) {
if (!_root.lastEnemy) {
if (random(30) == 4) {
enemyName = "enemy"+_root.depth;
trace(enemyName);
duplicateMovieClip("_root.m-target", enemyName, _root.depth);
_root[enemyName]._y = _root.depth*10;
trace(_root[enemyName]._y);
_root.depth++;
_root.lastEnemy = 100;
}
} else {
_root.lastEnemy--;
}
}

kimmo
02.08.2002, 16:44
круто, всё работает
но я ничего не понял.
что это за чудесный массив _root[]?

Nox Noctis
02.08.2002, 17:02
читаем хэлп :)

в хэлпе МХ ищем:
Contents —> Understanding the ActionScript Language —>
—> Using operators to manipulate values in expressions —>
—> Dot and array access operators

там все подробно описано :)

вот тут есть (http://www.flasher.ru/forum/showthread.php?s=&threadid=28151&highlight=%E0%F1%F1%EE%F6%E8%E0%F2%E8%E2%ED%FB%E9+%EC%E0%F1%F1%E8%E2) немного на русском по той же теме

Nox Noctis
02.08.2002, 17:14
собственно ошибка заключалась в следующем:

НЕПРАВИЛЬНО:
setProperty(enemyName, _y, _root.depth*10);
trace(getProperty(enemyName, _y));

ПРАВИЛЬНО:
setProperty(_root[enemyName], _y, _root.depth*10);
trace(getProperty(_root[enemyName], _y));

либо

tellTarget (_root) {
setProperty(enemyName, _y, depth*10);
trace(getProperty(enemyName, _y));
}

логика ясна ?