Где я могу разместить пользовательский код в пользовательском компоненте Flash Builder? - PullRequest
0 голосов
/ 12 декабря 2010

в основном файле я бы написал:

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

Но если я хочу, чтобы компонент имел такое поведение изначально, куда мне записать его в файле mybutton mxml, чтобы он сам ссылался на него?

Я пытался <s:rollOver="point_rollOverHandler(event)"/>, но он жалуется, что за типом элемента должны следовать спецификации атрибутов,> или />

Ответы [ 2 ]

2 голосов
/ 12 декабря 2010

Я предполагаю, что ваш компонент основан на s: Button. Просто объявите метод rollOver в главном узле MXML компонентов следующим образом (строка 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>
1 голос
/ 12 декабря 2010

в корневой тег для вашего пользовательского компонента добавьте свойство:

creationComplete="init()"

затем в теге script вашего пользовательского компонента создайте эту функцию и настройте прослушиватель событий мыши:

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

но это вызовет функцию point_rollOverHandler (e: MouseEvent), определенную в вашем пользовательском компоненте. Если вы хотите вызвать функцию, определенную для ее родителя, то лучший способ - это то, что у вас есть. В противном случае вы будете слишком тесно связывать компоненты, что сделает ваш код ломким и менее пригодным для повторного использования.

...