如何让应用程序在启动时自动扩展?

时间:2013-12-05 22:30:32

标签: actionscript-3 flash air

我希望我的应用程序根据屏幕大小自动调整其大小。我希望我的应用程序能够自动适应任何屏幕大小。我正在申请移动设备,我该怎么做?我在flash上​​相当新,所以请稍微简单一点!

3 个答案:

答案 0 :(得分:2)

是的,没有简单的答案,但基本要点是:

stage.addEventListener(Event.RESIZE,onStageResize);

function onStageResize(e:Event):void {

  // Use stage size for placing elements to their position..

  // Position to left top
  element1.x = 10;
  element1.y = 10;

  // Position to right top 
  element2.x = stage.stageWidth - element2.width - 10;
  element2.y = 10;

  // Position element to center and make it's width to scale with stage..
  element3.width = stage.stageWidth - 20;
  element3.x = 10;
  element3.y = stage.stageHeight / 2 - element3.height / 2;

}

要缩放元素,请将它们放在Sprite或MovieClip中,并缩放该元素,如:

element.scaleX = 1.6; // scale 1 = 100% 2 = 200% etc
element.scaleY = element.scaleX;

我通常为可视子类/组件创建公共函数“resizeElements(e:Event = null):void”,并从主线程调用它。在该函数中,对象可以自行调整大小。

答案 1 :(得分:1)

除了@ hardy的回答之外,在舞台上设置以下变量也很重要:

// disables default 100% scaling of entire swf
stage.scaleMode = StageScaleMode.NO_SCALE; 

// disables default align center
stage.align = StageAlign.TOP_LEFT;

此外,由于最初的问题是关于启动时调整大小,这是移动部署,因此调用onStageResize()非常重要;一次手动,因为最初可能不会触发RESIZE事件。这需要改变:

function onStageResize(e:Event):void { ... }

function onStageResize(e:Event = null):void { ... }

答案 2 :(得分:0)

说“自动缩放到屏幕”太笼统了。此声明强加的要求在应用程序之间完全不同,具体取决于他们需要做什么。没有简单的答案。

如果您的应用具有主要内容画布区域,是否要缩放到适合该区域的内容?您是否希望保持内容大小相同并显示更多内容?也许两者 - 你可能想要显示更多的点,然后在有更多空间的情况下进行缩放。

您希望自己的用户界面做什么?对话可以缩小/增长并保持中心。也许你想完全回流它们?

你有一个光滑的用户界面吗?也许是一个带有一组按钮的菜单。按钮的大小是否与屏幕成比例?他们之间的差距怎么样?如果屏幕比例不同,那么如果你将它们缩放以适应它们不再起作用怎么办?

关键是,没有一个简单的答案。对于基本布局,有一些UI框架可以帮助您进行放置和缩放,但您仍需要确定应用程序的行为方式。这完全取决于应用程序以及您的预期设计。