Я реализовал несколько служебных классов во Flex, которые хочу использовать в нескольких проектах AIR.Я создал SWC, который содержит эти классы.Я работаю на машине с Linux и у меня нет FlashBuilder.Поэтому я использую инструменты SDK для командной строки compc и mxmlc.Моя проблема в том, что я не смог найти способ указать SWC при сборке отдельного проекта.Учебник предложил следующую команду: mxmlc -load-config /opt/flex/4.1.0/frameworks/air-config.xml -library-path=/path/to/utility.swc hello.mxml
.Однако, используя это, я получаю ошибку hello.mxml: Error: Unable to locate specified base class 'mx.core.WindowedApplication' for component class 'hello'
.Все работает нормально, если я перенесу весь код из SWC в один монолитный проект.Может кто-нибудь помочь мне здесь?Код для автономного проекта:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" windowComplete="completeHandler();">
<mx:Script>
<![CDATA[
import com.example.Ext;
private function completeHandler():void
{
var e: Ext = new Ext();
e.hi();
}
]]>
</mx:Script>
<mx:Label text="Hello World" />
</mx:WindowedApplication>
Тип Ext содержится в utility.swc.
ОБНОВЛЕНИЕ: я исправил предыдущую ошибку.Командная строка должна была быть mxmlc -load-config /opt/flex/4.1.0/frameworks/air-config.xml -library-path+=/path/to/utility.swc hello.mxml
.Это добавляет мой SWC к существующему пути к библиотеке, а не заменяет его.Однако у меня новая проблема.Теперь ошибка hello.mxml(10): Error: Type was not found or was not a compile-time constant: Ext.
Я также вставляю код для utility.swc:
package com.example {
public class Ext {
public function Ext {
// do something
}
public function foo( ): void {
return;
}
}
}