![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 55
|
Доброго времени суток всем!
Помогите разобраться с вызовом функции из другого класса. В одном классе есть такой код: if (hitTestObject(Player.enemyList[i])) { Player.enemyList[i]; removeFiring(); Enemy.revomeEnemyOne(); } вот так выглядит функция в классе: Как мне вызвать функцию removeEnemyOne() в классе Bullet ? |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
если
или если |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 55
|
пробывал двумя способами.
С первым вариантом - ошибка на функции revomeEnemyOne(), т.к. статический метод не работает с this, но на что заменить этот this, ума не приложу. Со вторым вариантом - ошибка Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". - на _enemy.revomeEnemyOne()... |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Он просто не может удалить сам себя, не правильная архитектура. Нужно больше кода, где впервые объявлен класс Enemy и кто у него parent?
|
|
|||||
|
Регистрация: Oct 2009
Сообщений: 55
|
Выкладываю весь проект. Сделан во FD.
На улетность кода не претендую, но тыкания носом по существу принимаю. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Ох как всё плохо, нужно бы всё переписать, но ладно...
У тебя там несколько врагов? Одного из них уже убивает. Сейчас ещё одного найду и скину. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 55
|
Понимаю что плохо =( учимся пока.
Делал по урокам с asgamers.com, но там автор делает во Flash, т.е. кое-что прописывает в инстансах, а я пока навожу мосты с FD, первый раз за ним. Во Flash'e было бы легче, многие бы проблемы сразу отпали(хоть на качество кода и не повлияло бы, из-за малого опыта), но комп под ним тупит. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
в Bullet и в остальных классах оружия public function enterFrame напиши так
public function enterFrame(e:Event):void { x += vx; y += vy; if (_bullet.x < -20 || _bullet.x > stage.stageWidth+30 || _bullet.y < -20 || _bullet.y > stage.stageHeight+30) removeFiring(); for (var i:int = 0; i < Player.enemyList.length; i++) { if (hitTestObject(Player.enemyList[i])) { trace(Player.enemyList[i]) if (Player.enemyList[i] is Enemy) { Player.enemyList[i].revomeEnemyOne(); } if (Player.enemyList[i] is EnemyFire) { Player.enemyList[i].revomeEnemyFire(); } } } } И не создавай события EnterFrame в каждом классе, а тем более не объявляй переменные и не добавляй слушатели в теле события EnterFrame, а то они у тебя 60 раз в секунду создаются. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 55
|
Огромное спасибо =) теперь все как по маслу =)
по переменным и слушателям я запомнил =) а вот с событием EnterFrame в каждом классе немного не допер. Разжуешь? |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|