簡體   English   中英

如何將自定義代碼放在Flash Builder的自定義組件中?

[英]Where do I put custom code in a custom component in Flash Builder?

在主文件中,我會寫:

<components:mybutton id="mybutton1" rollOver="point_rollOverHandler(event)" />

但是,如果我希望組件固有地具有該行為,那么該在哪里將其寫入mybutton mxml文件中以使其自身引用呢?

我嘗試了<s:rollOver="point_rollOverHandler(event)"/>但是它抱怨元素類型必須后跟規范規范,>或/>

我的猜測是您的組件基於s:Button。 只需在組件主MXML節點中聲明rollOver方法,如下所示(第5行):

// myButton.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx"
          rollOver="button1_rollOverHandler(event)"

          >

    <fx:Script>
        <![CDATA[
            protected function button1_rollOverHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
            }
        ]]>
    </fx:Script>

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

在您的自定義組件的根標記中,添加屬性:

creationComplete="init()"

然后在自定義組件的script標簽中創建該函數並設置鼠標事件偵聽器:

function init():void{
  this.addEventListener(MouseEvent.MOUSE_OVER, point_rollOverHandler)
}

但這將調用自定義組件中定義的point_rollOverHandler(e:MouseEvent)函數。 如果您要調用在其父項上定義的函數,那么擁有的是最好的方法。 否則,您可能會把組件捆綁得太緊,這會使您的代碼易碎且難以重用。

暫無
暫無

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

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