Apache flex 将MXML组件用作ActionScript类的问题
我有两个MXML组件文件,并尝试将它们作为类使用。其中一个具有简单的功能: GUIFriend.mxmlApache flex 将MXML组件用作ActionScript类的问题,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,我有两个MXML组件文件,并尝试将它们作为类使用。其中一个具有简单的功能: GUIFriend.mxml <mx:Script> <![CDATA[ public function createName(f:Friend) { return 'friendProfile: ' + f.uid; } ]]> </mx:Script> <mx:Script>
<mx:Script>
<![CDATA[
public function createName(f:Friend) {
return 'friendProfile: ' + f.uid;
}
]]>
</mx:Script>
<mx:Script>
<![CDATA[
import GUIFriend;
public function getFriendProfile(f:Friend):GUIFriend {
var result:DisplayObject = getChildByName(GUIFriend.createName(f));
if (result is GUIFriend) {
return result;
} else {
// TODO: throw error
return null;
}
}
]]>
</mx:Script>
另一个尝试使用它:
GUIFriendContainer.mxml
<mx:Script>
<![CDATA[
public function createName(f:Friend) {
return 'friendProfile: ' + f.uid;
}
]]>
</mx:Script>
<mx:Script>
<![CDATA[
import GUIFriend;
public function getFriendProfile(f:Friend):GUIFriend {
var result:DisplayObject = getChildByName(GUIFriend.createName(f));
if (result is GUIFriend) {
return result;
} else {
// TODO: throw error
return null;
}
}
]]>
</mx:Script>
但在引用“createName”函数的行中,我得到两个错误:
但我看不出有什么合理的理由。我的代码怎么了?您试图通过类名直接调用实例方法
您需要使该方法成为静态的,或者创建一个类的实例并在该实例上调用该方法。您正试图通过类名直接调用实例方法
您需要使该方法成为静态的,或者创建该类的实例并调用该方法。对于第二个问题,请尝试
var result:DisplayObject = getChildByName(GUIFriend.createName(f)) as DisplayObject;
如果仍然存在问题,请临时键入result作为Object并输入调试断点,以检查getChildByName调用真正返回的内容。有关第二个问题,请重试
var result:DisplayObject = getChildByName(GUIFriend.createName(f)) as DisplayObject;
如果仍然存在问题,请临时键入result作为Object,并输入调试断点,以检查getChildByName调用真正返回的内容