![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 52
|
Доброго времени суток. Прошу помощи т.к. воопще 2 ночи не сплю - решаю проблему и никак не могу уловить даже зависимость в глюках.
Вопщем суть такая - на стадии есть 8 клипов (включающих в себя множество вложений, но как факт - одинаковых) просто инстанции одного клипа. Необхо реализовать "обмен" двух клипов с обменом свойств расположения (_X, _Y) и параметра _name. Вот мой код: tX = _parent._x; tY = _parent._y; tN = _parent._name; tN2 = _root.game[_global.telpath1]._name; _root.game[tN]._x = _root.game[_global.telpath1]._x; _root.game[tN]._y = _root.game[_global.telpath1]._y; _root.game[tN]._name = tN2; trace("новое имя: " + _parent._name); _root.game[_global.telpath1]._name = tN; trace("новое имя2: " + _root.game[tN]._name); _root.game[tN]._x = tX; _root.game[tN]._y = tY; _root.game[tN].swapDepths(_parent); Ошибки выглядят как вообще нелогичные действия. Иногда работает нормально. иногда вовсе отказывается даже перемещаться. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
1. Используйте либо абсолютную (через _root.) либо относительную (через _parent.) адресации. Лучше конечно относительную, хоть и прийдется иногда _parent._parent. писать, но так будет правильно.
2. Не совсем понимаю зачем менять имя _name вы же потом к нему и обращаетесь? имя которое отображается в игре лучше хранить в отдельной переменной, не служебной, а имя которое не отображается и менять не зачем. 3. возможно объекты достаточно поменять местами/координатами и глубиной? |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 52
|
1.Делал и абсолютную и относительную адресацию - разницы нет.
2. ну например, каждый из восьми клипов уже проименован (например м1,м2...), и они составляют точную структуру - первый ряд - м1, м2, м3, м4, второй ряд, м5, м6, м7, м8, и мне просто необходимо чтобы эта структура постоянно сохранялась. А если передвигать и менять глубину - структура разрушиться. Дело в том, что потом, все расчёты будут идти относительно правильной структуры клипов, где известно, какой клип на каом ряду или месте стоит. Возможно, быть может, есть путь легче? _global.telpath1 = эта переменная содержит адрес другого мувика (путём _global.telpath1 = _parent._name при нажатии на один из муви клипов который хотим переместить). Приведённый выше код находится в другом мувике (на место которого хотим переместить клип _global.telpath1), срабатывает при нажатии. Последний раз редактировалось darkvam; 20.03.2010 в 17:23. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
стоп, стоп, стоп
прекращаем писать код в мувиках пишем его в кадрах, точнее в первом кадре сцены как-то так function swapClips(amov:MovieClip;bmov:MovieClip){ var tmp_x = amov._x; amov._x = bmov._x; bmov._x = tmp_x; } всмысле если поменять копии одного клипа местами, переименовать их друг в друга и, допустим остановить их на одном и том-же кадре, то зачем тогда их вообще менять?!? |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 52
|
Код в первом кадре - я к этому стремлюсь, но до этого пока далеко. Да и не так важно - это не физика где требуется наивысшая производительность. То что не удабно - знаю, но приходится мирится.
Вопщем по обмену клипами: в каждом из таких клипов есть ещё клип наделённый некоторыми свойствами. Вот эти свойства мне и надо перенести. Сейчас есть мысль сделать чуть посложнее - не перемещая клипы, просто обменивать свойства клипов внутри них. Получиться больше переменных, но ведь это ничего правдо?) Я понимаю, что выложенный код без исходника невозможно понять нормально. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|