Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Не могу сослаться на компонент в обработчике события таймера. (http://www.flasher.ru/forum/showthread.php?t=114398)

maa 28.07.2008 14:31

Не могу сослаться на компонент в обработчике события таймера.
 
В функции updateArchiveEventsTable, привязанной к таймеру, не видна таблица archiveEvents_table. Почему так и как добратся до нее??


Код:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" horizontalAlign="center" verticalAlign="center"
        width="100%" height="100%" layout="absolute"  creationComplete="{getInit()}">       
              <mx:Script>
        <![CDATA[


        private var timer:Timer=null;     
         
          private function getInit():void
          { 
              this.timer = new Timer(5000, 0);   
              this.timer.addEventListener(TimerEvent.TIMER,updateArchiveEventsTable);
              timer.start(); 
          };     
          //****************************************
         
          public function updateArchiveEventsTable(pageNum:int=1, updateFilter:Boolean=false):void
          {
                  Alert.show("WWW1="+this.archiveEvents_table,"Сообщение");//Возвращает  null  
                archiveEvents_table.dataProvider=new ArrayCollection();          }       
       
          ]]>
    </mx:Script>
         
<mx:TabNavigator x="0" y="0" width="100%" height="100%" id="nb" >
      <mx:Canvas label="Текущие"  id="tab0" width="100%" height="100%" >

        <mx:DataGrid id="archiveEvents_table"  dataProvider="{new ArrayCollection()}"
            variableRowHeight="true" width="100%" x="0" backgroundAlpha="0.5"
                draggableColumns="true" selectable="true"  top="40" bottom="0"> 
          <mx:columns>
             
              <mx:DataGridColumn dataField="id" headerText="ID" width="90" />
                <mx:DataGridColumn dataField="dt" headerText="Дата" width="90"/>
                <mx:DataGridColumn dataField="tm" headerText="Время" width="90"/>
                <mx:DataGridColumn dataField="src" headerText="Источник" width="120"/>
                <mx:DataGridColumn dataField="labelType"  headerText="Тип" width="120"/>
                <mx:DataGridColumn dataField="type" visible="false"/>
                <mx:DataGridColumn dataField="msg" headerText="Сообщение" />
               
            </mx:columns>   
        </mx:DataGrid>   
      </mx:Canvas>     
     
    </mx:TabNavigator> 
       
       
</mx:Application>


etc 28.07.2008 14:49

Вывело:
WWW1=FlexTest0.nb.tab0.archiveEvents_table

JesterAntik 28.07.2008 18:28

ну если брать приведенный код то не подключены два класса Alert и ArrayCollection.
А вообще у тебе значения таблицы берутся всегда из нового ArrayCollection. И даже когда ты их задаешь в функции, то они перетираются {new ArrayCollection()}
если нет значения по умолчанию для полей таблицы то просто не трогай атрибут dataProvider

maa 31.07.2008 11:54

Цитата:

Сообщение от __etc (Сообщение 754829)
Вывело:
WWW1=FlexTest0.nb.tab0.archiveEvents_table

Спасибо. Действительно. У самого резко заработала, а почему раньше возврашала нул так сам и не понял. :(


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

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