Цитата:
|
P.s. Может быть я делаю не правильно и вы меня направите на путь истинный?)
|
Угу. Обработка подобных событий от view вообще не должна зависит. И в вид вообще не стоит никак привязывать данные об объекте. Пусть он создается из самого объекта и дальше с ним работает. Ну или как у вас, но оставить только сеттеры, нужные именно во вью (только цены, но не buttonId). Привязка событий делается так:

Код AS3:
public final class SellItemController {
private var item : ShopItem;
// добавить еще параметров по вкусу.
public function SellItemController(item : ShopItem) {
this.item = item;
}
internal function onSell1(e : MouseEvent) : void {
...
}
internal function onSell2(e : MouseEvent) : void {
...
}
}
//---- В коде
const itemController : SellItemController = new SeillItemController(item);
_itemObjForm.btn1.addEventListener(MouseEvent.CLICK, itemController.onSell1);
_itemObjForm.btn2.addEventListener(MouseEvent.CLICK, itemController.onSell2);
}
Когда надоест писать подобные контроллеры, можно будет библиотечную функцию делать и писать примерно так:

Код AS3:
_itemObjForm.btn1.addEventListener(MouseEvent.CLICK, EventUtils.createEventHandler(sell1, [item]));
_itemObjForm.btn2.addEventListener(MouseEvent.CLICK, EventUtils.createEventHandler(sell1, [item])));
Или даже
EventUtils.onEvent(_itemObjForm.btn1, MouseEvent.CLICK, sell1, [item]);
EventUtils.onEvent(_itemObjForm.btn2, MouseEvent.CLICK, sell2, [item])));