PDA

Просмотр полной версии : DataGrid и правая кнопка мышки


ponyol
28.08.2007, 18:14
Доброго дня!
Как отловить в DataGrid событие нажатия правой кнопки мышки и по нему создать контекстное меню?

Dima_DPE
28.08.2007, 18:21
При большом желание отловить можно, а вот создать свое контекстное меню никак, можно конечно добывить в стандартное меню, но About Adobe Flash... меню не убрать. Посмотри ContextMenu класс в хелпе.

ponyol
28.08.2007, 18:38
Посмотрел, действительно не интересно :(
Но вот в инете нашел http://www.uza.lt/blog/2007/08/solved-right-click-in-as3/ :)

Остался только один вопрос, как отловить в DataGrid это событие.... Если можно, несколько подробнее, ну совсем новичек :)

Dima_DPE
28.08.2007, 19:00
То что ты нашел - это неплохой вариант, но не панацея! Поэтому не советую...
Как отловить это событие написано тамже где ты нашел...
Как вариант можно рисовать свое меню по двойному-клику или добавить маленькую кнопку в каждую ячейку для меню.

ponyol
28.08.2007, 19:05
Как вариант можно рисовать свое меню по двойному-клику или добавить маленькую кнопку в каждую ячейку для меню.

Второе намного интересней!!! :)
Можно узнать, как добавить кнопку в грид и привязать к ней событие?
И все же, как в гриде отлавливать события мышки?

Dima_DPE
28.08.2007, 19:17
Посмотри тут, по поводу отлавливания соботый
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/SelectableList.html#event:itemClick
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/SelectableList.html#event:itemDoubleClick
А вот с добавлением кнопки там будет сложнее, мне на ум приходит только написать свой cellRenderer...

ponyol
28.08.2007, 19:22
Спасибо, буду изучать....
ВАУ!!!!! Это для AS3, а во втором это есть?

Dima_DPE
28.08.2007, 19:25
Упс. Извини за АС3, но думаю что-то подобное есть и под ас2.

ponyol
28.08.2007, 19:29
да, в ас2 этого нет.... :(
будем искать.....
спасибо за ответы....

Dima_DPE
28.08.2007, 19:33
как нет. Есть!
Тебе надо DataGrid.cellPress и List.cellRenderer...

ponyol
28.08.2007, 21:09
а можно пример для DataGrid.cellPress, с отлавливанием клика мышки? плз....

Dima_DPE
28.08.2007, 21:21
my_dg.dataProvider = [{name:"Clark", score:3135}, {name:"Bruce", score:403}, {name:"Peter", score:25}];

// Create listener object.
var dgListener:Object = new Object();
dgListener.cellPress = function(evt_obj:Object) {
var cell_str:String = "("+evt_obj.columnIndex+", "+evt_obj.itemIndex+")";
trace("The cell at "+cell_str+" has been clicked");
};

// Add listener.
my_dg.addEventListener("cellPress", dgListener);

Пример из хелпа =)
Обрати внимание на evt_obj в нем есть свойства columnIndex, itemIndex, а также target которое хранит ссылку на сам ДатаГрид, а не на ячейку (а жаль)

ponyol
29.08.2007, 14:16
Спасибо, я этот пример смотрел конечно, прежде чем написать :)
Мне пока не ясно, как определить, где мышь, где клава нажата... ну зеленый я пока :)