Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 潮汐框架的初始化_Actionscript 3_Apache Flex_Actionscript_Graniteds - Fatal编程技术网

Actionscript 3 潮汐框架的初始化

Actionscript 3 潮汐框架的初始化,actionscript-3,apache-flex,actionscript,graniteds,Actionscript 3,Apache Flex,Actionscript,Graniteds,我正在尝试使用GDS潮汐框架。我的基本代码是: <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" preinitialize="Tide.getInstance().

我正在尝试使用GDS潮汐框架。我的基本代码是:

<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"
               preinitialize="Tide.getInstance().initApplication()">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;

        Tide.getInstance().addComponents([TestController, TestModel]);


    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />
<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"
               preinitialize="Tide.getInstance().initApplication()" creationComplete="application1_creationCompleteHandler(event)">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;


        protected function application1_creationCompleteHandler(event:FlexEvent):void
        {
            Tide.getInstance().addComponents([TestController, TestModel]);
        }

    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />

我可以编译和运行我的代码,但当我启动我的应用程序时,我会看到空白窗口,我的按钮或标签不会出现。不会触发任何错误

当我将代码更改为此代码时:

<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"
               preinitialize="Tide.getInstance().initApplication()">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;

        Tide.getInstance().addComponents([TestController, TestModel]);


    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />
<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"
               preinitialize="Tide.getInstance().initApplication()" creationComplete="application1_creationCompleteHandler(event)">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;


        protected function application1_creationCompleteHandler(event:FlexEvent):void
        {
            Tide.getInstance().addComponents([TestController, TestModel]);
        }

    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />

它在我看到标签和按钮时起作用,但我的标签没有正确初始化,因为我的控制器和模型添加到
mx.events.FlexEvent.CREATION\u COMPLETE
event


第一种(也是推荐的)方法有什么不对吗?

我可以看看您是如何定义控制器和模型的吗?你在看吗?是的,我在看医生。当我启动提供的示例(并由GDS团队编写)时,情况是一样的。当我使用较旧的GDS swc库(名为granite essential.swc)时,它很有用。我不明白为什么即使解决方法只是在creationComplete事件方法中使用addComponents方法。我不明白为什么我不是GraniteDS专家,但在我看来,在您的第一个示例中,Tide的
addComponents
是在
initApplication
之前执行的。这是故意的吗?