Я создаю холст в actionscript, например:
private var cvs_preview:Canvas = null;
private function show_preview():void
{
this.cvs_preview = new Canvas();
this.cvs_preview.id = "cvs_preview_1";
this.cvs_preview.setStyle('backgroundColor', 0x000000);
this.cvs_preview.setStyle('backgroundAlpha', 1);
this.cvs_preview.setStyle('borderColor', 0x417FDD);
this.cvs_preview.setStyle('cornerRadius', 10);
this.cvs_preview.setStyle('borderStyle', 'solid');
this.cvs_preview.setStyle('dropShadowEnabled', true);
var pt:Point = image.localToGlobal(new Point(image.x, image.y));
this.cvs_preview.x = pt.x - 50;
this.cvs_preview.y = pt.y - 50;
this.cvs_preview.height = 200;
this.cvs_preview.width = 250;
//this.cvs_preview.addEventListener(FlexEvent.CREATION_COMPLETE, get_focus_on_canvas);
//this.cvs_preview.focusManager.setFocus(
//this.cvs_preview.addEventListener(MouseEvent.CLICK, end_preview_on_focus_change);
this.cvs_preview.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, end_preview_on_focus_change);
Application.application.addChild(this.cvs_preview); //add as top-most visible container
btn_mini_preview.enabled = false;
}
Итак, при изменении фокуса я хочу запустить "end_preview_on_focus_change()"
но это не работает.
Насколько я понимаю, я думаю, что холст вообще не получает никакого фокуса. Я пытался использовать focusManager.setFocus, чтобы сделать это после завершения создания холста. но даже это дает мне ошибку.
код, который я пробовал на Creation.Complete:
private function get_focus_on_canvas(e:FlexEvent)
{
focusManager.setFocus(e.target);
//Alert.show("testing img complete");
}
это дает мне ошибку «1118: неявное принуждение значения со статическим типом объекта к возможно несвязанному типу mx.managers:IFocusManagerComponent».
в основном я просто хочу использовать событие фокуса на холсте.
Может ли кто-нибудь помочь мне с этим... Я давно занимаюсь этим вопросом.
С уважением Зишан