Не удается заставить воздушное приложение загружать html-файл, включенный в проект

Я хотел бы использовать JavaScript в своем воздушном приложении, но не могу заставить воздушное приложение загрузить локальный (включенный) html-файл.

Это содержимое html-файла:

<html>
<head>
<script>
function setHeader(st) {
    document.getElementById('hiTitle').innerHTML = st;
}
</script>
</head>
<body>
<h1 id="hiTitle">Hello there</h1>
</body>
</html>

Это mxml-файл:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
    private function tracehtml():void {
        trace(htmlZ);
        htmlZ.htmlLoader.window.setHeader("never works");
    }
    ]]>
    </mx:Script>

    <mx:Panel x="10" y="10" width="252" height="100%"
    layout="absolute" title="The local html file">
        <mx:HTML
            id="htmlZ"
            location="script.html"
            enabled="true"
            paddingLeft="4"
            paddingRight="4"
            width="100%" height="100%"/>
    </mx:Panel>

    <mx:Button x="270" y="65" label="Highlight &gt;&gt;"
        click="tracehtml()"/>

</mx:WindowedApplication>

Если я изменю расположение mx:html следующим образом: location="http://labs.adobe.com/"

Он показывает html, оба файла находятся в одном каталоге.

Использование flex 4.6 sdk с flashbuilder без ошибок или предупреждений при сборке проекта.


person HMR    schedule 15.12.2012    source источник
comment
Если я положу script.html в папку bin (куда flashdevelop помещает swf), тогда он сработает. Теперь мне нужно найти способ получить html, скомпилированный в swf, и какой путь мне нужно использовать в качестве значения для местоположения.   -  person HMR    schedule 15.12.2012


Ответы (1)


Ответ для flashbuilder довольно прост. Поместите файлы html и файлы js в папку с именем assets и поместите эту папку в каталог bin вашего приложения.

Теперь при запуске приложения Air с помощью F5 (Projcet => Test Project) оно работает.

В папке проекта есть папка bat. Я проверил файлы bat, и Packager изменил рабочий каталог на bin, а затем сказал adt (Adobe Air Developer Tool) включить все в текущий каталог (= bin).

Откройте командную строку и перейдите в папку проекта, затем введите следующие команды:

bat\SetupSDK.bat
bat\CreateCertificate.bat
(wait a minute)
bat\SetupApplication.bat
bat\Packager.bat

Для тех, кто не использует flashbuilder, команда adt выглядит следующим образом (имя проекта — google):

adt -package  -storetype pkcs12 -keystore "bat\Google.p12" -storepass fd air\Google.air application.xml -C bin .

Теперь в папке air создается воздушный файл, который открывается с помощью winrar (это zip-файл) и подтверждается, что каталог активов находится там.

Двойной щелчок по файлу запускает установщик и после открытия установленного приложения работает так же, как и при тестировании в flashdevelop.

person HMR    schedule 15.12.2012