簡體   English   中英

將MXML組件用作ActionScript類的問題

[英]Problems with using MXML components as ActionScript classes

我有兩個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”函數的行中,我得到兩個錯誤:

  1. 通過靜態類型為Class的引用調用可能未定義的方法createName。 - (更新)我忘了使方法靜態化。
  2. 靜態類型為flash.display:DisplayObject的值的隱式強制轉換為可能不相關的GUIFriend類型。

但我認為沒有合理的理由。 我的代碼有什么問題?

對於第二個問題,請嘗試

var result:DisplayObject = getChildByName(GUIFriend.createName(f)) as DisplayObject;

如果仍然有問題,請暫時將result鍵入Object並放入調試斷點,以檢查getChildByName調用真正返回的內容。

您試圖直接通過類名調用實例方法。

您要么需要使方法靜態化,要么需要創建類的實例並在其上調用該方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM