Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.06.2011, 21:13
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 11  
Ответить с цитированием
linnard

Регистрация: 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.
Старый 22.06.2011, 22:07
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 12  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А ошибки какие?
__________________
Hell is the possibility of sanity

Старый 22.06.2011, 23:13
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 13  
Ответить с цитированием
linnard

Регистрация: 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.

Старый 23.06.2011, 17:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 14  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А, ну так конечно, вам нужно Анту сказать где находится 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

Старый 23.06.2011, 20:17
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 15  
Ответить с цитированием
linnard

Регистрация: 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
Все пути указал правильно, 100 раз перепроверял, теперь вывод такой:
Код:
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.
flexTasks.tasks существует по адресу указанному в build.properties.....Что делать?

Старый 23.06.2011, 20:38
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 16  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Какое-то очень подозрительное расположение директорий... Судя по конфигу проект находится в корне на C:/ и вы папку с SDK опять же прямо в корень распаковали... Что-то тут не так... На всякий случай: {basedir} - это директория, в которой находится build.xml, если в корневом теге не указан аттрибут basedir="занчение", в последнем случае корневая директорие будет "значение".
Можете запостить абсолютные пути к файлам? А лучше прямо в конфиге и используйте абсолютные, когда заработает уже будет понятнее, как их сократить до относительных.
__________________
Hell is the possibility of sanity

Старый 24.06.2011, 03:19
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 17  
Ответить с цитированием
linnard

Регистрация: 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>
Может быть я что-то упустил?

Старый 26.06.2011, 18:23
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 18  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Смотрите, в общем случае показать SWF скомпилированый для AIR можно только в проигрывателе AIR т.как только в нем есть необходимые классы, типа того же File.
Но компиляция происходит в два этапа: первый - компиляция SWF, в которой могут использоваться классы AIR, этa SWF по большому счету такая же, как и те, что можно показать в плеере для веб, но если в ней использованы классы типа File, то она не запустится т.как будет ошибка проверки.
Эту же SWF можно запустить с помощью ADL - посмотрите, в моем билд файле последний target как раз и запускает оладчик.
Если вы видите не то, что скомпилировали, то это значит, что есть какая-то ошибка. Если вы не видите ошибку то у вас либо плеер не оладчик, либо вы запустили "готовое приложение", а не отладчик AIR.
__________________
Hell is the possibility of sanity

Старый 27.06.2011, 22:27
linnard вне форума Посмотреть профиль Отправить личное сообщение для linnard Найти все сообщения от linnard
  № 19  
Ответить с цитированием
linnard

Регистрация: Oct 2010
Сообщений: 53
Проект так и не запустился, видимо ошибка в коде, буду разбираться. Спасибо огромное за помощь!

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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