我正在尝试使用flex中的弹出管理器弹出图像预览。我在我的一个mxml组件中有一个按钮,我们可以在弹出画布中预览图像,这是另一个mxml组件。但我得到了以下错误。
TypeError:错误#1009:无法访问空对象引用的属性或方法。
在components :: CanvasPopup / init()
以下是我的代码段:
在我的mxml组件AddNewPromo中,按钮位于:
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
public var path:String="abc.jpg";
private function showPopUp(e:MouseEvent):void
{
var popUpObj:CanvasPopup = CanvasPopup(PopUpManager.createPopUp(this,CanvasPopup,true));
PopUpManager.centerPopUp(popUpObj);
}
]]>
</mx:Script>
在用于弹出窗口的画布mxml组件中:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="400" initialize="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
import flash.events.MouseEvent;
private function closeThis(e:MouseEvent):void
{
PopUpManager.removePopUp(this);
}
public var popObj:AddNewPromo = new AddNewPromo();
[Bindable]
public var imagePath:String;
private function init():void{
imagePath= popObj.path.toString();
var btn:Button = new Button();
btn.move(this.width-5,2);
btn.label="Close";
btn.addEventListener(MouseEvent.CLICK,closeThis);
addChild(btn);
}
]]>
</mx:Script>
<mx:Image source="{imagePath}" horizontalCenter="0" verticalCenter="0"/>
</mx:Canvas>
请帮帮我。
答案 0 :(得分:0)
我猜这是由于init方法中的以下行:
imagePath= popObj.path.toString();
path
上的popObj
属性可能为空,但很难说,因为我们不确切知道AddNewPromo
类是什么。