![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 2
|
Доброе время суток.
Хотел бы задать следующие вопросы. Есть класс, объект которого, по достижению некоторого условия, должен удаляться со сцены. package by.me { ... public class Coin extends Sprite { ... private var _mainContainer:Object3DContainer; public function Coin(mainContainer:Object3DContainer) { super(); this._mainContainer = mainContainer; ... this._mainContainer.addEventListener(Coin.CHECK, onCheck); } private function onCheck(e:Event):void { if (this._body.z < -500) this.remove(); } private function remove():void { this._mainContainer.removeEventListener(Coin.CHECK, onCheck); this._mainContainer.dispatchEvent(new Event(Coin.REMOVE)); } } } package by.me { import by.me.Coin; ... public class MyPhysics extends Alternativa3dPhysics { private var _mainContainer:Object3DContainer; private var coinsVector:Vector.<Coin>; ... public function MyPhysics(mainContainer:Object3DContainer) { this._mainContainer = mainContainer; super(this._mainContainer, MyPhysics.SPEED); coinsVector = new Vector.<Coin>(); this._mainContainer.addEventListener(Coin.REMOVE, onCoinRemove); } public function fillWithCoins():void { for (var i:uint = 0; i < 4; i++) { for (var j:uint = 0; j < 2; j++) { coinsVector[i] = new Coin(this._mainContainer); ... } } } private function onCoinRemove(e:Event):void { var i:uint; i = coinsVector.indexOf(e.target); removeBody(coinsVector[i]._body); coinsVector.splice(i, 1); } } } Функция onCheck вызывается следующим образом: через каждые 40 OnEnterFrame'ов. Вопросы: 1) Почему передаются null, как исправить. 2) Стоит ли переделывать через DataEvent, передавая в ней какой-нибудь идентификатор, this.name, к примеру. 3) Стоит ли проверку вообще проводить внутри самого объекта, может правильнее проверять весь вектор в MyPhysics. Последний раз редактировалось HoneyBunny.; 30.09.2011 в 12:56. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Трейсы уже не в моде?
Функция заполнения вектора монетками-то есть, а где она вызывается не вижу. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 95
|
null попробуйте исправить, заменив
на 2) - Не критично 3)Стоит, т.к. в таком случае фаша функция переносима и может быть применена в любом другом классе, где нет вектора. P.S Почита |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 2
|
@goodguy - trace в моде, просто как и многое другое были убраны из цитируемого кода, как не важное, для читабельности.
@tofflife - спасибо, по поводу UseCapture=true, помогло, пойду читать что и почему. Ну а потом переделаю по пункту 3. |
|
|||||
|
Если разберетесь - отпишитесь сюда, пожалуйста. Мне очень интересно, как может быть target/currentTarget = null, и как в capture-phase это исправляется.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|