我有两个MXML组件文件,并尝试将它们作为类使用。其中一个功能很简单:
GUIFriend.mxml
<mx:Script>
<![CDATA[
public function createName(f:Friend) {
return 'friendProfile: ' + f.uid;
}
]]>
</mx:Script>
另一个尝试使用它:
GUIFriendContainer.mxml
<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'函数的行中,我得到两个错误:
但我认为没有合理的理由。我的代码出了什么问题?
答案 0 :(得分:2)
对于第二个问题,请尝试
var result:DisplayObject = getChildByName(GUIFriend.createName(f)) as DisplayObject;
如果仍然有问题,请暂时将结果输入为Object并输入调试断点以检查从getChildByName调用中真正返回的内容。
答案 1 :(得分:1)
您正试图通过类名直接调用实例方法。
您需要将方法设为静态或创建类的实例并在其上调用方法。