Я полный новичок во Flex, поэтому извиняюсь за свою глупость.Я искал ответ, но не нашел ничего, что могло бы помочь.
Что я пытаюсь сделать: перенести этот пример http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase_print.html на Flash Builder 4.
Все вроде бы хорошо, но с одной стороны.Когда я использую оригинальный код для приложения Air
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="onApplicationComplete()">
<fx:Script>
<![CDATA[
private static const neededForCompilation:AirGeneralImplementation = null;
private function onApplicationComplete():void
{
var can:MainCanvas = new MainCanvas();
this.addChild(can);
can.labelMessage = "Loaded in an AIR Application ";
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:WindowedApplication>
, я получаю эту ошибку времени выполнения
Ошибка: addChild () недоступна в этом классе.Вместо этого используйте addElement () или измените скин, если он у вас есть.at spark.components.supportClasses :: SkinnableComponent / addChild () [E: \ dev \ 4.0.0 \ frameworks \ projects \ spark \ src \ spark \ components \ supportClasses \ SkinnableComponent.as: 1038]
Если я заменил код на
this.addElement(can)
;
Все загружается хорошо, но в первый раз, когда я пытаюсь нажать любую из кнопок на основном холсте, я получаю следующую ошибку во время выполнения
ArgumentError: Ошибка # 2025: предоставленный объект DisplayObject должен быть дочерним по отношению к вызывающей стороне.на flash.display :: DisplayObjectContainer / getChildIndex () на mx.managers :: SystemManager / getChildIndex () [E: \ dev \ 4.0.0 \ frameworks \ projects \ framework \ src \ mx \ Manager \ SystemManager.as: 1665]в mx.managers.systemClasses :: ActiveWindowManager / mouseDownHandler () [E: \ dev \ 4.0.0 \ frameworks \ projects \ framework \ src \ mx \ Manager \ systemClasses \ ActiveWindowManager.as: 437]
вот супер простой код для основного холста
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init();">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script source="main.as" />
<mx:Label id="lblMessage" text="The UI from the shared Flex app BothCode" x="433" y="112"/>
<s:Button x="433" y="141" click="saveFile();" label="Save File"/>
<s:Button x="601" y="141" click="GeneralFactory.getGeneralInstance().airOnlyFunctionality();" label="Air Only"/>
</s:Application>
Любая помощь будет очень цениться.И любые указания на то, как настроить проект, который может компилироваться как в Air, так и во Flash, при совместном использовании одного и того же кода, все для Flex 4, также будут высоко оценены.
спасибо!