![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Приветствую, столкнулся с проблемой при добавлении 1 и того же предмета 1го класса в ячейки сумки, все пред идущие перестают быть связанны с переменной к которой они относятся. Как это выяснилось: в коде есть переменная targ=e.target; и memory = targ; memory является переменной другого класса о том что за предмет был под указателем мышки когда его вставили в соответствующий слот на персонаже. Как происходит проверка:
if (MenuPanel.menuP.oneHandSw == memory) MenuPanel - класс menuP - статическая переменная(через нее связываюсь со всеми методами и св-ми класса) oneHandSw - переменная того предмета который перетаскивал. Вот как я создавал эти предметы: (скорее всего тут неправильно) public var oneHandSw:OneHanded = new OneHanded ; bag.addChild(oneHandSw = new oneHandedSword_icon); //oneHandedSword_icon - имя MovieClip oneHandSw.x = bag.sl1.x; oneHandSw.y = bag.sl1.y; bag.addChild(oneHandSw = new oneHandedSword_icon); //oneHandedSword_icon - имя MovieClip oneHandSw.x = bag.sl2.x; oneHandSw.y = bag.sl2.y; Конечно можно создать несколько предметов под разными переменными, но тогда если выпадет такой же предмет как и у меня, мой сразу потеряет связь с переменной+придется для каждого одинакового предмета писать его характеристики. |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Я бы написал в bag(точнее в его классе) функцию addItem, в которую бы передавал нужные данные. А уже внутри этой функции можно сделать добавление на сцену и расчёт координат.
Добавление тогда будет выглядеть просто: Кстати, названия классов принято в большой буквы писать. |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
Tetraeon, "переменная" - это ссылка на созданный объект
каждый раз когда вы пишете вы создаете новый экземпляр класса когда вы пишете вы присваиваете ссылку на этот экземпляр в переменную someVar таким образом если вы 3 раза подряд напишите то у вас 3 раза создастся экземпляр класса SomeObj, но ссылка у вас будет только на последний созданный, эта ссылка будет храниться в someVar
__________________
low + |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
bag это клип сумки расположенный в этом классе. Вы правы так будит попроще, но вот я все таки не понял как же быть в этой ситуации?
Может быть можно както передать в memory информацию относиться ли объект конкретно к MovieClip? Последний раз редактировалось Tetraeon; 10.06.2012 в 23:35. |
|
|||||
|
Он вообще то про oneHandedSword_icon.
__________________
http://www.chessmax.ru |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
А это не класс, а MovieClip... да я именно настолько извратился что таким образом создал несколько экземпляров... просто пришлось много вариантов перебрать без особого понимания.
Последний раз редактировалось Tetraeon; 10.06.2012 в 23:43. |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
Цитата:
Вам Jewelz хорошо всё объяснил. Если я правильно понят, создайте какой-нибудь массив или вектор, в котором храните нужную информацию. |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Решил проблему добавив .String
if (MenuPanel.menuP.oneHandSw== String(memory)) Последний раз редактировалось Tetraeon; 13.06.2012 в 19:36. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|