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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2010, 09:27
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 1  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
Question Датагрид и вставленная в неё кнопка

Код AS3:
<mx:DataGrid left="10" top="41" right="10" bottom="10" dataProvider="{bookz}" id="DG" change="ShowImage()">
  <mx:columns>
     <mx:DataGridColumn headerText="Код" width="30"  dataField="id"/>
     <mx:DataGridColumn headerText="Название книги" width="300" dataField="name"/>
     <mx:DataGridColumn dataField="Скачать" width="50">
           <mx:itemRenderer>
                  <mx:Component>
                        <mx:Button label="скачать" click="Downl();"/>
                  </mx:Component>
           </mx:itemRenderer>
      </mx:DataGridColumn>
   </mx:columns>
</mx:DataGrid>
Есть датагрид с вставленной в неё кнопкой, когда вешаю на клик функцию click="Downl();"
пишет 1180: Вызов предположительно неопределенного метода Downl.
вот функция
Код AS3:
public function Downl():void
{
if (DG.selectedIndex==-1)
{
Alert.show('Выберите из списка книгу, которую Вы хотите загрузить');	
return;
}	
init(progBar,btn1);
CheckFileInInternet();
}
что я делаю нетак??? а если пробую функцию сделать статичной но вообще выдает непонятно что.... Спасибо тем кто прочитает и ответит
__________________
Flex+AS3 good)

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

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Считай, что
Код AS3:
           <mx:itemRenderer>
                  <mx:Component>
                        <mx:Button label="скачать" click="Downl();"/>
                  </mx:Component>
           </mx:itemRenderer>
это отдельный документ. Чтобы обратиться к основному документу, можешь использовать outerDocument:
Код AS3:
<mx:Button label="скачать" click="outerDocument.Downl();"/>

Старый 26.03.2010, 09:52
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 3  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
Ага это да это теперь понятно я так и догадывался но теперь он выдает еще лучше
1061: Обращение к возможно неопределенному методу Downl через ссылку статического типа Class. ставлю статичной функцию он выдает кучу ошибок что незнает такое что внутри функции... и как это решить?
__________________
Flex+AS3 good)

Старый 26.03.2010, 09:59
bastrakov вне форума Посмотреть профиль Отправить личное сообщение для bastrakov Найти все сообщения от bastrakov
  № 4  
Ответить с цитированием
bastrakov

Регистрация: Nov 2009
Сообщений: 64
лично мне это очень не понравилось... :-(

Код AS3:
 
                <mx:DataGridColumn dataField="dg3">
                	<mx:itemRenderer>
                		<mx:Component>
                			<mx:Canvas width="100%" >
 
								<mx:Script>
								<![CDATA[
									import mx.controls.Alert;
									private function showAlert():void
									{
										Alert.show(data.dg3);
									}
								]]>
								</mx:Script>
 
								<mx:Label id="dg3text"
									text="{data.dg3}"
								/>
								<mx:Button alpha="-1"
                					height="95%" width="95%" click="{showAlert()}"
                				/>
 
                			</mx:Canvas>
                		</mx:Component>
                	</mx:itemRenderer>
                </mx:DataGridColumn>
к слову. гораздо удобнее делать отдельным компонентом и его вставлять здесь. во

Старый 26.03.2010, 10:03
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 5  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
Ага я это думал но проблемма в том что в функции идет обращение к тем компонентам(кнопки и тд) и он же опять выдаст ошибку я уверен... должен же быть способ вызывать его незасовывая пол приложеня внутрь итемрендера... есть такое или нет? и все же попробую вдруг выйдет) хатя врядли)

Добавлено через 13 минут
ага ошибка та же что и тогда когда пробовал сделать функцию статичной((... блин а можно сделать одну функцию которая сама может читать все приложение и приложение с любого места её видет типа global иль еще как то?
__________________
Flex+AS3 good)

Старый 26.03.2010, 15:31
BeDLiNt вне форума Посмотреть профиль Отправить личное сообщение для BeDLiNt Найти все сообщения от BeDLiNt
  № 6  
Ответить с цитированием
BeDLiNt
 
Аватар для BeDLiNt

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Диспатчте своё событие по клику, а снаружи ловите.
__________________
2+2=5

Старый 29.03.2010, 09:11
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 7  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
Цитата:
Сообщение от BeDLiNt Посмотреть сообщение
Диспатчте своё событие по клику, а снаружи ловите.
А можно коротеньки пример а то что то непойму
__________________
Flex+AS3 good)

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Ну напишите свой итемРендерер, и в нём по клику шлите событие, что по кнопке кликнули. Событие конечно и так шлется, стандратное флексовое всплывающее MouseEvent.CLICK. Можете конечно и его ловить, но ловить его Вам надо будет на уровне датагрида, а у него и его компонентов так же есть это событие и Вам надо будет разбираться, кто именно его послал, можно, но не верно.
Поэтому лучше использовать своё собственное, где вы можете передать в проперти нужные Вам данные. Т.к. листенера Вы не сможете повешать на Вашу кнопку извне потому что у Вас нет там на него ссылки, то можно использовать всплывающее(bubbles) событие, и тогда его можно ловить на уровне датагрида.
Вот собственно и все. В рендерере по клику dispatch. У датагрида addEventListener.
__________________
2+2=5

Старый 29.03.2010, 11:02
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 9  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
блин некогда неработал с этими dispatch очень прошу пример или ссылку на него
__________________
Flex+AS3 good)

Старый 29.03.2010, 11:15
Кип вне форума Посмотреть профиль Отправить личное сообщение для Кип Найти все сообщения от Кип
  № 10  
Ответить с цитированием
Кип
 
Аватар для Кип

Регистрация: Oct 2009
Сообщений: 34
Отправить сообщение для Кип с помощью ICQ
Выносишь itemRenderer в отдельный файл, вешаешь в нём обработчик MouseEvent.CLICK, в обработчике пишешь:
Код AS3:
dispatchEvent(new Event("itemRendererClicked", true));
В основном классе на датагрид вешаешь addEventListender("itemRendererClicked", твояФункция)

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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