Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   AIR Mobile: Variable is not defined (http://www.flasher.ru/forum/showthread.php?t=211431)

neovich 31.08.2015 11:46

AIR Mobile: Variable is not defined
 
Всем привет!
Начал изучать Air. Скачал всё самое последнее: FlashDevelop, AIR SDK и тд. Создаю новый проект "AIR Mobile AS3 App". В дефолтный файл Main.as добавляю всего одну строчку
Код AS3:

[Embed(source = 'assets/play_norm.png')] public const PLAY_NORM_IMG:Class;

Т.е. весь файл выглядит так:
Код AS3:

package
{
        import flash.desktop.NativeApplication;
        import flash.events.Event;
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.ui.Multitouch;
        import flash.ui.MultitouchInputMode;
 
        public class Main extends Sprite
        {
                [Embed(source = 'assets/play_norm.png')] public const PLAY_NORM_IMG:Class;
 
                public function Main()
                {
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        stage.align = StageAlign.TOP_LEFT;
                        stage.addEventListener(Event.DEACTIVATE, deactivate);
 
                        // touch or gesture?
                        Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
 
                        // Entry point
                        // New to AIR? Please read *carefully* the readme.txt files!
                }
 
                private function deactivate(e:Event):void
                {
                        // make sure the app behaves well (or exits) when in background
                        //NativeApplication.nativeApplication.exit();
                }
        }
}

Естественно, файл play_norm.png существует в папке src/assets. Проект успешно компилируется. Но при запуске вываливается исключение:
Код:

ReferenceError: Error #1065: Variable Main_PLAY_NORM_IMG is not defined.
        at Main()[E:\projects\test_mobile\src\Main.as:13]
        at runtime::ContentPlayer/loadInitialContent()
        at runtime::ContentPlayer/playRawContent()
        at runtime::ContentPlayer/playContent()
        at runtime::AppRunner/run()
        at ADLAppEntry/run()
        at global/runtime::ADLEntry()

Если в свойствах проекта поменять платформу с "AIR Mobile" на "AIR", то ошибка пропадает. Но я хочу создать приложение именно под мобильные устройства.
Как эту ошибку побороть?

P.S.: пробовал на двух разных машинах, под Win7 и Win8.1, эффект одинаковый.

caseyryan 31.08.2015 13:27

Я заметил, что появление такой ошибки бывает вообще спонтанно. Так и не понял от чего зависит. Но у меня в полностью рабочих проектах бывает вываливается примерно раз на 100 - 150 компиляций.
Вообще, сам проект надо глянуть. У FD вечно какие-то проблемы с изменением типа проекта и другими настройками. В коде все верно.

neovich 31.08.2015 13:33

Тема, оказывается, животрепещущая) На flashdevelop.org/community/ куча веток этому посвящено. Выход оказался для моего случая простой. В параметрах проекта в SDK по умолчанию почему-то стоит "Flex 4.6.0, AIR 18.0". Хотя проект создаю как чистый AIR Mobile, без Flex.
Выставив SDK чисто "AIR 18.0", эта ошибка пропала.
Вопрос закрыт.
Удачи!

Добавлено через 2 минуты
Насчёт спонтанных ошибок, да, тоже иногда проявляются. Здесь же всегда стопроцентный негативный результат. Но вроде бы разобрался для данного случая. См. выше.


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

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