flex popup manager

时间:2009-09-19 11:21:22

标签: flex

我正在尝试使用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> 

请帮帮我。

1 个答案:

答案 0 :(得分:0)

我猜这是由于init方法中的以下行:

imagePath= popObj.path.toString();

path上的popObj属性可能为空,但很难说,因为我们不确切知道AddNewPromo类是什么。