Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Приложение Adobe Air работает нестабильно. (http://www.flasher.ru/forum/showthread.php?t=153416)

SirHally 02.04.2011 17:42

Приложение Adobe Air работает нестабильно.
 
У меня приложение на Adobe Air (Adobe Flash CS4, Adobe AIR 1.1, ActionScript 3.0). Я сделал Publish Air, установил у себя. Работает. Попробовал на других компьютерах (установил с http://get.adobe.com/ru/air/ платформу, запустил свой Main.air, запустил приложение) и обнаружил следующую ошибку.
Показывается окно приложения с кнопкой, к которой привязано следующее событие. При щелчке на кнопку(btnDialogCreate) ничего не происходит. Ни ошибки, ни диалога browseForDirectory:
Код AS3:

public class Main extends MovieClip  {
        private var flag=true;
        private var directory:File = File.desktopDirectory;
        private var file:File = File.desktopDirectory;
 
        public function Main():void
        {
                this.stop();
                var file:File = File.applicationDirectory.resolvePath("pattern.xml");
                var fileStream = new FileStream();
                fileStream.open(file, FileMode.READ);
                var str:String = fileStream.readUTFBytes(fileStream.bytesAvailable);
                      str=str.substr(1);         
                var panoramaPattern=new XML(str);
                fileStream.close();
                this.addEventListener(Event.ENTER_FRAME, Bind);
        }
        public function Bind(e)
        {
                if(flag){
                        btnDialogCreate.addEventListener(MouseEvent.CLICK,temp);
                        flag=false;
                }
        }
 
        private function temp(e)
        {
                var directory:File=File.documentsDirectory;
                try{
                            directory.browseForDirectory("Выберите директорию проекта.");       
                    }
                    catch(e:Error){}
        }
}

Я поправил код на основе http://www.flasher.ru/forum/showpost...85&postcount=3. Все равно не помогло.
Как показало комментирование кусочков кода и проверка, проблема в строке
Код AS3:

var panoramaPattern=new XML(str);

Что с ней не так? Почему она вызывает ошибку? Файл pattern.xml я в инсталлятор включил, он устанавливается вместе с приложением.
И еще один вопрос. Можно как-нибудь сделать, чтобы установленное приложение Abode AIR выдавало ошибки, а не молчало?

mayakwd 02.04.2011 18:31

ну может у вас невалидный xml, зачем вы отрезаете первый символ?

goodguy 02.04.2011 18:59

Я не могу понять, зачем делать вот это:
Код AS3:

var fileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readUTFBytes(fileStream.bytesAvailable);

?
Это вообще бессмыленно. Для загрузки XML лучше использовать URLLoader.
FileStream можно использовать для записи XML на диск, но для загрузки это лишние танцы с бубном.

Цитата:

ну может у вас невалидный xml, зачем вы отрезаете первый символ?
Тогда уж не первый, а всю строку начиная со второго символа

п.с. Да и вообще, сейчас в моде AIR 2.6 ;)

SirHally 02.04.2011 20:40

Нашел проблему!
1. Я исправил кодировку текстового файла на ANSI. И отрезать стало ничего не надо.
2. Поправил загрузку XML файла на код отсюда - http://help.adobe.com/en_US/AIR/1.5/...de46-7dc5.html. Как-то оно красивее выглядит.

Теперь работает и открывается.

2goodguy Я не знаю, у меня в CS4 в списке только AIR 1.1. был :( Для AIR 2.6, наверное, CS5 нужен?

goodguy 02.04.2011 20:56

Его можно отдельно скачать с сайта адоби. Flash IDE для этого вообще не обязательна. Можно писать и во FlashDevelop


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

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