Правя първия си удар в писането на персонализиран компонент flex 4 чрез разширяване на класа UIComponent. За съжаление не мога да накарам компонента да реагира на каквито и да било събития с мишката. Опитах да настроя mouseEnabled на true е компонентът, както и да настроя mouseChildren на true в родителя (обекта етап).
Изглежда, каквото и да правя, събитията ми с кликване могат да бъдат открити от сцената, но не и с компонента.
Ето моят клас компонент:
package components {
import mx.core.UIComponent;
public class DrawCanvas extends UIComponent {
public function DrawCanvas() {
super();
}
}
}
И ето моят файл WindowedApplication:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:cmp="components.*"
minWidth="800" minHeight="600"
applicationComplete="init()">
<fx:Script>
<![CDATA[
private function init():void {
myBox.addEventListener(MouseEvent.CLICK, reportClick);
stage.addEventListener(MouseEvent.CLICK, stageClick);
}
private function stageClick(event:MouseEvent):void {
trace(event.target, event.currentTarget);
trace("Stage Click", event.localX, event.localY);
}
private function reportClick(event:MouseEvent):void {
trace(event.target, event.currentTarget);
trace("Click", event.localX, event.localY);
}
]]>
</fx:Script>
<cmp:DrawCanvas id="myBox"
height="100%" width="100%"/>
</s:WindowedApplication>
Благодаря предварително,
Сам