автозапуск приложения в flex - PullRequest
0 голосов
/ 19 марта 2012

Я нашел приложение, которое читает информацию о вашей веб-камере. Дело в том, что при запуске приложения нужно щелкнуть по нему, чтобы просмотреть статистику.

Теперь я подключил приложение к кнопке, которая анимирует созданный мною список mx :. Но в любом случае мне нужно сначала нажать на список, чтобы сгенерировать вывод для метки mx:.

Любые идеи о том, как мне сделать, чтобы просто нажать на кнопку моего шоу, чтобы автоматически запустить статистику камеры.

Спасибо

<?xml version="1.0"?>
<!-- behaviors\CompositeEffects.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
                import mx.events.ListEvent;
                import mx.utils.ObjectUtil;


            private var camera:Camera;
                private function list_change(evt:ListEvent):void {
                var tList:List = evt.currentTarget as List;
                var cameraName:String = tList.selectedIndex.toString();
                camera = Camera.getCamera(cameraName);
                textArea.text = ObjectUtil.toString(camera);
            }
    ]]>
    </mx:Script>

    <mx:Parallel id="ZoomRotateShow">
        <mx:Zoom id="myZoomShow" 
                 zoomHeightFrom="0.0" 
                 zoomWidthFrom="0.0" 
                 zoomHeightTo="1.0" 
                 zoomWidthTo="1.0"
                 />
        <mx:Rotate id="myRotateShow"/>
    </mx:Parallel>

    <mx:Sequence id="ZoomRotateHide">
        <mx:Rotate id="myRotateHide"/>
        <mx:Zoom id="myZoomHide" 
                 zoomHeightFrom="1.0" 
                 zoomWidthFrom="1.0" 
                 zoomHeightTo="0.0" 
                 zoomWidthTo="0.0"
                 />
    </mx:Sequence>



        <mx:List id="list"
                 dataProvider="{Camera.names}"
                 width="200"
                 change="list_change(event);"
                 hideEffect="{ZoomRotateHide}" 
                 showEffect="{ZoomRotateShow}" visible="false"
                 />

    <mx:Label id="textArea" height="185" x="674" y="228" dataChange="{Camera.names}" />

    <mx:Button id="myButton1" 
               label="Show!" 
               click="list.visible=true;"
               />
    <mx:Button id="myButton2" 
               label="Hide!" 
               click="list.visible=false;"
               />
</mx:Application>

1 Ответ

1 голос
/ 19 марта 2012

Сначала я разделил вашу функцию на две части:

private function list_change(evt:ListEvent):void {
    var tList:List = evt.currentTarget as List;
    populateCameraInfo(tList.selectedIndex.toString());
}
private function populateCameraInfo(cameraName:String):void {
    camera = Camera.getCamera(cameraName);
    textArea.text = ObjectUtil.toString(camera);
}

Далее (и я предполагаю, что вы хотите, чтобы список был видимым для начала):

<mx:List id="list"
         dataProvider="{Camera.names}"
         width="200"
         change="list_change(event);"
         hideEffect="{ZoomRotateHide}" 
         showEffect="{ZoomRotateShow}"
         selectedIndex="0"
         creationComplete="populateCameraInfo('0')"
         />

Таким образом, всегда выбирается первый элемент.

...