Невозможно изменить размер содержимого, чтобы оно соответствовало новому NativeWindow в AIR - PullRequest
1 голос
/ 20 декабря 2010

Я пытаюсь создать класс всплывающего окна, который будет получать контент 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);
  }
 }

Спасибо, Мик

Ответы [ 2 ]

0 голосов
/ 07 апреля 2014

Может быть, из-за того, что размеры родных окон chrome отличаются.Попробуйте так:

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

0 голосов
/ 19 октября 2011

Теперь я решил это, я думаю!

Сначала создайте свой контент:

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, но я думаю, что это связано сразмер системы хром.

...