我正在 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:将静态类型 Object 的值隐式强制转换为可能不相关的类型 mx.managers:IFocusManagerComponent。”
基本上我只想使用画布的焦点事件。
有人可以帮我解决这个问题吗?我很久以来一直在这个问题上。
问候泽山