Я пытаюсь создать приложение Flex AIR с помощью Flex Builder 3, с которого я только начинаю.
В Flash CS4 в среде разработки есть текстовое поле, в котором вы можете указать класс, который станет «базовым» классом - ваш класс наследуется от Sprite, а затем «становится» рабочей областью во время выполнения. Есть ли способ сделать то же самое с Flex / AIR? В противном случае, кто-нибудь может объяснить, как создать и использовать внешний класс?
Первоначально у меня было это в TestApp.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script source="TestApp.as"/>
</mx:WindowedApplication>
И это в TestApp.as:
package {
public class TestApp {
public function TestApp() {
trace('Hello World');
}
}
}
Это выдает ошибку "пакеты не могут быть вложенными", поэтому я попытался удалить выражение пакета:
public class TestApp {
public function TestApp() {
trace('Hello World');
}
}
Это выдает ошибку «классы не могут быть вложенными», поэтому я, наконец, сдался и попытался полностью исключить класс, полагая, что вместо этого я попытаюсь начать с набора функций:
function init() {
trace('Hello World');
}
Но это дает ошибку: «Файл, найденный в исходном пути, должен иметь внешне видимое определение. Если определение в файле должно быть видимым извне, поместите определение в пакет».
Я не могу победить! Когда я помещаю свой класс в пакет, он говорит, что я не могу этого сделать, потому что он будет вложенным. Когда я этого не делаю, он говорит, что должен быть в пакете, чтобы его можно было увидеть.
Кто-нибудь знает, как это исправить? Если я не могу сделать пользовательский класс как базовый класс, есть ли способ, которым я мог бы просто иметь это как:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script source="TestApp.as"/>
<mx:Script>
var app = new TestApp();
</mx:Script>
</mx:WindowedApplication>
В настоящее время я вообще не могу импортировать определение класса, так что даже это не сработает.
Заранее спасибо!