|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2007
Сообщений: 80
|
Помогите настроить dragImage или dragProxyImage для DataGrid
Использую Flex4 mx: DataGrid из которого делаю dragDrop в s:Group, и хочу изменить dragImage или dragProxyImage, что бы в нем была не вся строка а только одна картинка. Помогите пожалуйста,в гугле не понятно как они это делают)
Вот код DataGrid: <mx:DataGrid id="bodyConstructorData" width="200" height="95%" editable="false" dragEnabled="true" dragMoveEnabled="false" dropEnabled="false" enabled="true"> <mx:columns> <mx:DataGridColumn dataField="name" width="150"> </mx:DataGridColumn> <mx:DataGridColumn width="32" headerText="image" dataField="imageID" itemRenderer="ImageItemRender"> </mx:DataGridColumn> </mx:columns> </mx:DataGrid> <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true"> <s:BitmapImage id="image" width="32" height="32" source = "{DataMain.instance.imagesData.getImageAtId(int(data.imageID))}"/> </s:MXDataGridItemRenderer> |
|
|||||
Напишите совой drag proxy (в качестве примера можете посмотреть mx.controls.dataGridClasses.DataGridDragProxy) и присвойте его в dragImage вашего DataGrid.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Jul 2007
Сообщений: 80
|
Цитата:
добавляю в свой код, но компилятор ругается, говорит ошибка 1020: Method marked override must override another method. <mx:DataGrid id="bodyConstructorData" width="200" height="95%" editable="false" dragEnabled="true" dragMoveEnabled="false" dropEnabled="false" enabled="true"> <fx:Script> <![CDATA[ import mx.controls.dataGridClasses.DataGridDragProxy; import mx.core.IUIComponent; [Bindable] public var dragProxyImage: Class = DataGridDragProxy; override protected function get dragImage():IUIComponent // ТУТ ОШИБКА 1020 { var image:IUIComponent = new dragProxyImage(); image.owner = this; return image; } ]]> </fx:Script> .... </mx:DataGrid> |
|
|||||
Если вы считаете, что этот код будет вставлен в ваш DataGrid, то вы ошибаетесь. В вашем компоненте нет геттера dragImage, на это и ругается.
Добавлено через 15 минут P.S. В примере это два разных mxml файла.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Jul 2007
Сообщений: 80
|
вообще запутался , как так нету геттера, почему его нет (а при ctrl + click по mx: DataGrid он есть в FB4.6), ну что за непонятные подводные рифы, помогите пожалуйста.
Последний раз редактировалось tananuka; 25.11.2012 в 19:47. |
|
|||||
В приведенном вами примере: на основе DataGrid сделали новый компонент, у которого переписали геттер dragImage и использовали этот компонент в другом компоненте.
Вы пытаетесь: добавить DataGrid в ваш компонент и тут же переписать у него геттер. При этом думаете, что блок <fx:Script></fx:Script> попадет в DataGrid, а не в ваш компонент. Так понятнее?
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Jul 2007
Сообщений: 80
|
понял, пасибо
|
|
|||||
Регистрация: Jul 2007
Сообщений: 80
|
сделал отдельный компонент и переназначил dragImage, драг работает но картинки никакой нет вообще, помогите пожалуйста, как это сделать? что бы при перетаскивании была видна "custom" картинка
override protected function get dragImage():IUIComponent { // достаю свою картинку var xml:XML = this.dataProvider.getItemAt(this.selectedIndex) as XML var Pic:Class = DataMain.instance.imagesData.getImageAtId(int(xml.imageID)) // создаю свою картинку var img:UIComponent = new UIComponent () img.addChild(new Pic()) img.owner = this; return img; } |
Часовой пояс GMT +4, время: 10:08. |
|
« Предыдущая тема | Следующая тема » |
|
|