Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.11.2012, 16:35
tananuka вне форума Посмотреть профиль Отправить личное сообщение для tananuka Найти все сообщения от tananuka
  № 1  
Ответить с цитированием
tananuka
 
Аватар для tananuka

Регистрация: Jul 2007
Сообщений: 80
По умолчанию Помогите настроить dragImage или dragProxyImage для DataGrid

Использую Flex4 mx: DataGrid из которого делаю dragDrop в s:Group, и хочу изменить dragImage или dragProxyImage, что бы в нем была не вся строка а только одна картинка. Помогите пожалуйста,в гугле не понятно как они это делают)
Вот код DataGrid:
Код AS3:
<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>
ImageItemRender.mxml
Код AS3:
<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>
.

Старый 25.11.2012, 14:40
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Напишите совой drag proxy (в качестве примера можете посмотреть mx.controls.dataGridClasses.DataGridDragProxy) и присвойте его в dragImage вашего DataGrid.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 25.11.2012, 16:25
tananuka вне форума Посмотреть профиль Отправить личное сообщение для tananuka Найти все сообщения от tananuka
  № 3  
Ответить с цитированием
tananuka
 
Аватар для tananuka

Регистрация: Jul 2007
Сообщений: 80
Цитата:
Сообщение от alatar Посмотреть сообщение
Напишите совой drag proxy (в качестве примера можете посмотреть mx.controls.dataGridClasses.DataGridDragProxy) и присвойте его в dragImage вашего DataGrid.
нашел хороший пример
добавляю в свой код, но компилятор ругается, говорит ошибка 1020: Method marked override must override another method.

Код AS3:
<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>

Старый 25.11.2012, 16:30
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Если вы считаете, что этот код будет вставлен в ваш DataGrid, то вы ошибаетесь. В вашем компоненте нет геттера dragImage, на это и ругается.

Добавлено через 15 минут
P.S. В примере это два разных mxml файла.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 25.11.2012, 19:07
tananuka вне форума Посмотреть профиль Отправить личное сообщение для tananuka Найти все сообщения от tananuka
  № 5  
Ответить с цитированием
tananuka
 
Аватар для tananuka

Регистрация: Jul 2007
Сообщений: 80
Цитата:
Сообщение от alatar Посмотреть сообщение
Если вы считаете, что этот код будет вставлен в ваш DataGrid, то вы ошибаетесь. В вашем компоненте нет геттера dragImage, на это и ругается.
Добавлено через 15 минут
P.S. В примере это два разных mxml файла.
вообще запутался , как так нету геттера, почему его нет (а при ctrl + click по mx: DataGrid он есть в FB4.6), ну что за непонятные подводные рифы, помогите пожалуйста.


Последний раз редактировалось tananuka; 25.11.2012 в 19:47.
Старый 25.11.2012, 19:59
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В приведенном вами примере: на основе DataGrid сделали новый компонент, у которого переписали геттер dragImage и использовали этот компонент в другом компоненте.

Вы пытаетесь: добавить DataGrid в ваш компонент и тут же переписать у него геттер. При этом думаете, что блок <fx:Script></fx:Script> попадет в DataGrid, а не в ваш компонент.

Так понятнее?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 28.11.2012, 17:37
tananuka вне форума Посмотреть профиль Отправить личное сообщение для tananuka Найти все сообщения от tananuka
  № 7  
Ответить с цитированием
tananuka
 
Аватар для tananuka

Регистрация: Jul 2007
Сообщений: 80
понял, пасибо

Старый 10.12.2012, 19:49
tananuka вне форума Посмотреть профиль Отправить личное сообщение для tananuka Найти все сообщения от tananuka
  № 8  
Ответить с цитированием
tananuka
 
Аватар для tananuka

Регистрация: Jul 2007
Сообщений: 80
сделал отдельный компонент и переназначил dragImage, драг работает но картинки никакой нет вообще, помогите пожалуйста, как это сделать? что бы при перетаскивании была видна "custom" картинка

Код AS3:
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, время: 18:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.