![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 53
|
Спасибо, создал новый проект использующий классы однако ничего не получается, пробовал через build.xml (редактировал ваш пример - изменил имена файлов) возникают ошибки. У меня есть файл main.mxml который использует 2 файла класса: App.as и App2.as а также библиотеку App.swc. Может я неправильно редактировал build.xml?
<project name="App" basedir="." default="distributable-air">
<property file="${basedir}/build.properties"/>
<taskdef resource="flexTasks.tasks" classpath="${flex.tasks}"/>
<target name="clean" description="Clean the project">
<delete dir="${out.dir}" failonerror="false"/>
</target>
<target name="create-certificate" description="Creates a self-signed certificate">
<!-- not using secure shell because potato -->
<input message="The password for certificate" addproperty="password"/>
<exec executable="${adt}" failonerror="true">
<arg line="-certificate -cn SelfSigned 1024-RSA ${basedir}/App.pfx ${password}"/>
</exec>
</target>
<target name="revision-counter"
description="Retrieves last revision number into 'version.xml' file">
<exec executable="${svn.exe}" outputproperty="svn.info">
<arg value="info"/>
</exec>
<loadproperties>
<string>${svn.info}</string>
<filterchain>
<linecontains>
<contains value="Revision:"/>
</linecontains>
<replacestring from="Revision: " to="revision="/>
</filterchain>
</loadproperties>
<delete failonerror="false" file="${basedir}/version.xml"/>
<copy file="${basedir}/version.xml-template"
tofile="${basedir}/version.xml"/>
<replace file="${basedir}/version.xml">
<replacefilter token="@revision@" value="${revision}"/>
</replace>
<echo>REVISION: ${revision}</echo>
</target>
<target name="init" description="initialize the project" depends="clean">
<mkdir dir="${out.dir}" />
<!--
This is similar to what Flash Builder does when it copies files
you used in the source folders to the bin folder.
-->
<copy todir="${out.dir}" includeemptydirs="false">
<fileset dir="${basedir}">
<exclude name="**/*.as" />
<exclude name="**/*.mxml" />
<exclude name="**/build.xml" />
<exclude name="**/*.properties" />
<exclude name="**/*.air" />
<exclude name="**/*.pfx" />
<exclude name="**/*.swf" />
<include name="**/*" />
</fileset>
</copy>
</target>
<target name="compile-air-test"
description="Compiles App" depends="init">
<mxmlc file="${src.dir}/App.as"
output="${out.dir}/App.swf"
debug="true"
optimize="true"
warn-unlikely-function-value="false"
locale="en_US"
configname="air">
<source-path path-element="${src.dir}" />
<library-path dir="${FLEX_HOME}/frameworks/libs" append="true">
<include name="App.swc" />
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/libs/air" append="true">
<include name="App.swc" />
</library-path>
<library-path dir="${FLEX_HOME}/frameworks/locale" append="true">
<include name="{locale}" />
</library-path>
</mxmlc>
</target>
<target name="distributable-air" description="Create the AIR package for our application"
depends="compile-air-test">
<input addproperty="password" message="The password you used to sign the certificate"/>
<!-- not using secure shell because potato -->
<exec executable="${adt}" failonerror="true">
<arg line="-package -storetype pkcs12"/>
<arg line="-keystore ${basedir}/App.pfx -storepass ${password}"/>
<arg line="rounds.air ${src.dir}/App-app.xml ${out.dir}/App.swf -C ${out.dir}"/>
</exec>
</target>
<target name="debug-air" description="Runs AIR debugger with our application" >
<!-- Use this for debugging -->
<exec executable="${adl}" failonerror="true">
<arg line="${src.dir}/App-app.xml -C ${basedir}" />
</exec>
</target>
</project>
Последний раз редактировалось linnard; 22.06.2011 в 21:15. |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 53
|
C:\App\src\build.xml:70: Problem: failed to create task or type mxmlc
Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any <presetdef>/<macrodef> declarations have taken place. |
|
|||||
|
Modus ponens
|
А, ну так конечно, вам нужно Анту сказать где находится flexTasks.jar - поищите в SDK у меня он тут:
(ниже - файл со свойствами, build.properties) # The location of the Flex SDK
FLEX_HOME=/home/wvxvw/Programs/flex/sdk/4.5+air
### The utilities we need frm SDK to compile the project
# AIR packager
adt=/home/wvxvw/Programs/flex/sdk/4.5+air/bin/adt
# AIR launcher
adl=/home/wvxvw/Programs/flex/sdk/4.5+air/bin/adl
# Adobe Ant tasks
flex.tasks=${FLEX_HOME}/ant/lib/flexTasks.jar
### My project directories
# Sources files go here
src.dir=${basedir}/src/
# Binary (compiled) files intended for delivery to the customer go here
out.dir=${basedir}/bin-release/
# Binary (compiled) files inteded for testing and debugging and other
# internal uses go here
dbg.dir=${basedir}/bin-debug/
### Subversion related properties
# Subversion executable
svn.exe=svn
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 53
|
Насчет гемора вы были правы, создал файл build.properties с содержимым:
FLEX_HOME=./Program Files/Adobe/Adobe Flash Builder 4.5/sdks/4.5.1
adt=./Program Files/Adobe/Adobe Flash Builder 4.5/sdks/4.5.1/bin/adt
adl=./Program Files/Adobe/Adobe Flash Builder 4.5/sdks/4.5.1/bin/adl
flex.tasks=${basedir}/ant/lib/flexTasks.jar
src.dir=${basedir}/src/
out.dir=${basedir}/bin-release/
dbg.dir=${basedir}/bin-debug/
svn.exe=svn
Buildfile: C:\App\build.xml
[taskdef] Could not load definitions from resource flexTasks.tasks. It could not be found.
clean:
[delete] Deleting directory C:\App\bin-release
init:
[mkdir] Created dir: C:\App\bin-release
[copy] Copying 11 files to C:\App\bin-release
compile-air-test:
BUILD FAILED
C:\App\build.xml:71: Problem: failed to create task or type mxmlc
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
|
|
|||||
|
Modus ponens
|
Какое-то очень подозрительное расположение директорий... Судя по конфигу проект находится в корне на C:/ и вы папку с SDK опять же прямо в корень распаковали... Что-то тут не так... На всякий случай: {basedir} - это директория, в которой находится build.xml, если в корневом теге не указан аттрибут basedir="занчение", в последнем случае корневая директорие будет "значение".
Можете запостить абсолютные пути к файлам? А лучше прямо в конфиге и используйте абсолютные, когда заработает уже будет понятнее, как их сократить до относительных.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 53
|
Поэкспериментировал с путями как вы и говорили, и наконец то создался swf. Я его запустил и появилось почему-то пустое окно, хотя должно быть в нем:
![]() Вот мой новый рабочий build.xml: <?xml version="1.0" encoding="utf-8"?>
<project name="My App Builder" basedir=".">
<taskdef resource="flexTasks.tasks" classpath="${basedir}/libs/flexTasks.jar"/>
<property name="FLEX_HOME" value="C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\4.5.1"/>
<property name="APP_ROOT" value="\src"/>
<property name="DEPLOY_DIR" value="C:\test\out"/>
<target name="main">
<mxmlc file="${APP_ROOT}/test.mxml"
output="${DEPLOY_DIR}/test.swf">
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<library-path dir="${FLEX_HOME}/frameworks/libs" append="true"><include name="Test.swc" /> </library-path>
</mxmlc>
</target>
</project>
|
|
|||||
|
Modus ponens
|
Смотрите, в общем случае показать SWF скомпилированый для AIR можно только в проигрывателе AIR т.как только в нем есть необходимые классы, типа того же File.
Но компиляция происходит в два этапа: первый - компиляция SWF, в которой могут использоваться классы AIR, этa SWF по большому счету такая же, как и те, что можно показать в плеере для веб, но если в ней использованы классы типа File, то она не запустится т.как будет ошибка проверки. Эту же SWF можно запустить с помощью ADL - посмотрите, в моем билд файле последний target как раз и запускает оладчик. Если вы видите не то, что скомпилировали, то это значит, что есть какая-то ошибка. Если вы не видите ошибку то у вас либо плеер не оладчик, либо вы запустили "готовое приложение", а не отладчик AIR.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 53
|
Проект так и не запустился, видимо ошибка в коде, буду разбираться. Спасибо огромное за помощь!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|