Обработчик событий, связанный со строкой DataGrid во Flex - PullRequest
0 голосов
/ 16 января 2012

Я загружаю некоторые изображения из базы данных, используя PHP-скрипт через CodeIgniter, но когда я пытаюсь добавить обработчик событий, чтобы сделать что-то с этими изображениями, компилятор Flex показывает мне ошибку:

1180: вызов возможно неопределенного метода cloneCar.

Почему я не могу добавить обработчик событий в этом контексте?

<mx:Accordion>
     <mx:Form id="menu5" label="Prueba" width="100%" height="100%" backgroundColor="#707070" icon="{roadIcon}">
        <mx:DataGrid x="251" y="95" dataProvider="{traffic_signals.lastResult..signal}" 
                 showHeaders="false" 
                 horizontalGridLines="false" 
                 selectionColor="#707070" 
                 themeColor="#707070" 
                 alternatingItemColors="[#707070, #707070]" 
                 borderColor="#707070" 
                 rollOverColor="#707070"> 
            <mx:columns>
                <mx:DataGridColumn dataField="source" >
                    <mx:itemRenderer >
                        <mx:Component >
                            <mx:Image width="94" height="94" mouseDown="cloneCar(event)"/>
                        </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>
    </mx:Form>
</mx:Accordion>

Без предложения mouseDown все работает нормально, но мне нужно разрешить перетаскивание (и другие функции) с этими изображениями.

Спасибо!

EDIT:

Метод cloneCar определен так:

private function cloneCar(e:MouseEvent):void
{
   // do stuff
}

1 Ответ

0 голосов
/ 17 января 2012

Я решил свою проблему.Как сказал 'awq', область действия ItemRenderer не зависит от глобальной области видимости, поэтому мне нужно объявить функцию-обработчик события как public и связать ее с событием mouseDown, используя директиву outerDocument:

public function cloneCar(e:MouseEvent):void
{
   // do stuff
}

....

<mx:itemRenderer >
  <mx:Component >
     <mx:Image width="94" height="94" mouseDown="outerDocument.cloneCar(event)"/>
  </mx:Component>
</mx:itemRenderer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...