1

我正在尝试制作一个弹出窗口类,它将获取一个内容 DisaplyObject,并弹出并显示它本身,但我正在通过将内容的大小与窗口匹配或反之亦然来破解我的头......我认为那也许窗口没有显示所有的舞台或什么?!

内容太大了..超出了界限。

这是代码:

public class SubWindow extends NativeWindow{

 public function SubWindow() 
  {

   var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
     windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD;
     windowOptions.type = NativeWindowType.UTILITY;
   windowOptions.resizable = false;
   super(windowOptions);
   this.stage.align = StageAlign.TOP_LEFT;
     width = 400;
     height = 400;
     title = "Are you sure?";
   alwaysInFront = true;
   activate();
   visible = false;
   addEventListener(Event.CLOSING, closeWindow, false, 0, true); 
  }

  public function closeWindow(e:Event)
  {
   e.stopImmediatePropagation();
         e.stopPropagation();
         e.preventDefault();
   visible = false;
  }

  public function setContent(cont:DisplayObject)
  {
   visible = true;
   //this.width = stage.stageWidth;
   //this.height = stage.stageHeight;
   trace(cont.getBounds(stage), width, height, stage.stageWidth,stage.stageHeight);


   cont.height = stage.stageHeight;
   cont.width = stage.stageWidth;
   cont.x = cont.y = 0;
   this.stage.addChild(cont);
   trace(cont.width, width, height, stage.stageWidth,stage.stageHeight);
  }
 }

谢谢,米克

4

2 回答 2

0

现在我已经解决了,我想!

首先创建您的内容:

var myContent:MyCustomContentClass = new MyCustomContentClass();

然后创建您的窗口并设置大小和位置

var myWindow:NativeWindow = new NativeWindow();
myWindow.stage.align = StageAlign.TOP_LEFT;
myWindow.width = myContent.width;
myWindow.height = myContent.height

并将缩放模式设置为无缩放:

myWindow.stage.scaleMode = StageScaleMode.NO_SCALE;

然后添加内容

myWindow.stage.addChild(myContent); 
myWindow.activate();

在 osX 上运行时我仍然有一些小问题,但我认为这与系统 chrome 的大小有关。

于 2011-10-19T11:13:48.177 回答
0

也许是因为原生 windows chrome 尺寸不同。试试这个方法:

http://tedpatrick.com/2009/12/23/sizing-air-nativewindow-to-stage/

于 2014-04-06T20:24:53.977 回答