Есть ли загрузка XML со страницы, с которой будет считываться флэш-память? - PullRequest
0 голосов
/ 13 января 2011

Вот моя проблема, для которой я безуспешно пытался найти решение. Я создаю некоторые флеш-меню, которые собираются извлечь из того, что я надеялся создать как файл XML, но клиент, для которого я его создаю, не имеет самой быстрой базы данных в мире, поэтому, когда страница загружается во флэш-памяти, она все равно требует некоторое время, чтобы загрузить XML. Это нежелательно, так как зритель уже ждал загрузки страницы, и теперь он вынужден ждать, пока она загрузится снова. Я пытаюсь найти способ загрузки страницы и xml вместе, чтобы flash мог читать. Я исследовал флэш-переменные, но не похоже, чтобы они были настроены так, чтобы они содержали весь XML-документ, так как специальные символы нарушают HTML, что является той же причиной, по которой я не мог задать все параметры вместо XML.

Кто-нибудь знает способ загрузки XML-файла вместе со страницей или другой способ загрузки rss-подобной информации во флэш-память, чтобы флэш-память сразу же содержала содержимое?

1 Ответ

0 голосов
/ 13 января 2011

Какая у вас среда программирования? Вы обращаетесь к базе данных вашего клиента и медленно загружаете флэш-память, это не должно быть связано. Какие данные загружаются из базы данных Flash?

Один из способов заставить ваш XML загружаться как можно быстрее - это использовать какую-либо форму фильма с предварительной загрузкой. Этот фильм будет иметь две функции:
- 1 Загрузить данные XML
- 2 загрузки MainMovie

Этот первый фильм будет загружаться очень быстро, так как вы можете свести графические ресурсы к минимуму, а именно: простой индикатор выполнения / сообщение, информирующее пользователя о том, что основной SWF-файл загружается.

Пока загружается основной фильм, вы должны были извлечь и проанализировать данные XML, чтобы можно было присвоить результирующие данные загруженному SWF-файлу.

Вот сокращенная версия:

     //Preloader
     private var menuData:Object;

     public function Preloader()
     {
           loadXMLData();
           loadMainMovie();
     }

     private function loadXMLData():void
     {
         var loader:URLLoader = new URLLoader(); //etc...
     }

     private function xmlLoaded( event:Event ):void
     {
         menuData = parseXMLData( event.target.data );
         //remove listener
     }

     private function loadMovieComplete(event:Event ):void
     {
         var main:MovieClip = event.currentTarget.content as MainClass;

         if( menuData != null )
         {
             main.menuData = menuData;
             addChild( main );

         }else{

            //if your XML takes more time to load than your MainMovie
            //you may have to reconsider your options!
            //in any case you could add a listener here
            //to check when the xml load is complete
         }
         //remove listener
     }
...