Flex 4,包和类

时间:2010-06-22 22:57:35

标签: flex flex4

有人可以帮助我理解这一点,因为它在as3中工作但在弹性方面没有那么多,我似乎无法理解它。我可以通过将我的函数更改为static来实现它,但我不想这样做。

好的,首先我创建了一个包

package testPackage
{
public class TestClass
{
    public function TestClass()
    {       
    }

    public function traceName(str:String):void
    {
        trace(str);
    }       
}
}

然后我试图导入该包并从那个

创建一个类
import testPackage.TestClass;

var getClass:TestClass = new TestClass();
getClass.traceName("hello");

但我不断收到错误访问未定义属性getClass

1 个答案:

答案 0 :(得分:2)

您最有可能将新的TestClass()语句直接放在<fx:Script>标记正文中。

这在Flex中不起作用。

<fx:Script>标记应仅包含import语句,变量&amp;功能定义。没有直接的运行时代码。

您需要将类初始化代码放在其中一个flex事件处理程序中。您可以从应用程序的applicationComplete事件处理程序开始。

喜欢这样

<?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="creationCompleteHandler(event)"
               >
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import testPackage.TestClass;

            // This doesn't work here
            // var getClass:TestClass = new TestClass();
            // getClass.traceName("hello");


            protected function creationCompleteHandler(event:FlexEvent):void
            {
                // it works here
                var getClass:TestClass = new TestClass();
                getClass.traceName("hello");
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:Application>