有人可以帮助我理解这一点,因为它在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
答案 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>