Apache flex 100%至100%Flex应用程序预加载程序定位
我在尝试将加载动画应用到我的Flex应用程序(整个浏览器窗口)时遇到问题。Apache flex 100%至100%Flex应用程序预加载程序定位,apache-flex,preloader,Apache Flex,Preloader,我在尝试将加载动画应用到我的Flex应用程序(整个浏览器窗口)时遇到问题。 我正在对DownloadProgressBar类进行子类化,如Adobe关于此的文章中所述stageHeight和stageWidth不正确。构造器中显示500x375像素,其他地方显示0x0。为什么?我不确定这是否有帮助,但我认为可以使用application.width、application.height来参考Flex应用程序的大小 以下问题似乎与您的问题有关: 希望他们能有所帮助。我不确定这是否有帮助,但
我正在对DownloadProgressBar类进行子类化,如Adobe关于此的文章中所述<基类报告的code>stageHeight和
stageWidth
不正确。构造器中显示500x375像素,其他地方显示0x0。为什么?我不确定这是否有帮助,但我认为可以使用application.width、application.height来参考Flex应用程序的大小
以下问题似乎与您的问题有关:
希望他们能有所帮助。我不确定这是否有帮助,但我认为可以使用application.width、application.height来参考Flex应用程序的大小 以下问题似乎与您的问题有关:
希望他们能有所帮助。0x0的宽度/高度测量值通常表示相关组件在阅读时没有完全布置好(包括子组件)。在建造商中检查测量肯定为时过早。在您将舞台设置为全屏并且您显示的所有内容都已布置好之后,您可能会希望检查测量值,可能是在applications creationComplete事件中,甚至可能是在以后。以下链接应该是一个很好的资源:
0x0的宽度/高度测量值通常表示相关部件在读取时未完全布置(包括子部件)。在建造商中检查测量肯定为时过早。在您将舞台设置为全屏并且您显示的所有内容都已布置好之后,您可能会希望检查测量值,可能是在applications creationComplete事件中,甚至可能是在以后。以下链接应该是一个很好的资源:
您要做的是在后台添加一个事件侦听器,用于调整其大小事件,并相应地调整预加载程序的大小。否则,如果有人在显示预加载程序时调整Flex应用程序的大小,它将不会调整大小
stage.addEventListener(Event.RESIZE, onStageResize);
public function onStageResize(e : Event) : void {
this.width = stage.stageWidth;
this.height = stage.stageHeight;
}
或者,您也可以使用如下代码将预加载程序集中在舞台上:
preloader.x = this.stage.stageWidth/2 - preloader.width/2;
您要做的是向stage添加一个事件侦听器,用于调整其resize事件,并相应地调整预加载程序的大小。否则,如果有人在显示预加载程序时调整Flex应用程序的大小,它将不会调整大小
stage.addEventListener(Event.RESIZE, onStageResize);
public function onStageResize(e : Event) : void {
this.width = stage.stageWidth;
this.height = stage.stageHeight;
}
或者,您也可以使用如下代码将预加载程序集中在舞台上:
preloader.x = this.stage.stageWidth/2 - preloader.width/2;
你解决这个问题了吗?我的flex应用程序也有同样的问题。 舞台返回500x375。 我的变通方法不太好。此函数在FlexEvent.INIT_PROGRESS上调用。因此,当我的应用程序可用时,我使用它的道具
private function onFlexInitProgress( event:FlexEvent ):void {
if (Application.application != null){
var appWidth:Number = Application.application.width;
var appHeight:Number = Application.application.height;
x = (appWidth * 0.5) - (preloaderSWF.width * 0.5);
y = (appHeight * 0.5);
preloaderSWF.visible = true;
}
}
你解决这个问题了吗?我的flex应用程序也有同样的问题。 舞台返回500x375。 我的变通方法不太好。此函数在FlexEvent.INIT_PROGRESS上调用。因此,当我的应用程序可用时,我使用它的道具
private function onFlexInitProgress( event:FlexEvent ):void {
if (Application.application != null){
var appWidth:Number = Application.application.width;
var appHeight:Number = Application.application.height;
x = (appWidth * 0.5) - (preloaderSWF.width * 0.5);
y = (appHeight * 0.5);
preloaderSWF.visible = true;
}
}
我在FlashBuilder中的一个actionscript项目中遇到了同样的问题,使用100%到100%的宽度和高度。我观察到stage.stageWidth和stage.stageHeight是500x375,直到预加载程序加载主类之后,它才会变为全屏大小。因此,预载器中的项目定位不正确。我发现,正是我的主课中的这一行让舞台尺寸得以更新:
stage.scaleMode = StageScaleMode.NO_SCALE;
以下是我如何在预加载程序中实现它:
public function Preloader()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
...
}
我在FlashBuilder中的一个actionscript项目中遇到了同样的问题,使用100%到100%的宽度和高度。我观察到stage.stageWidth和stage.stageHeight是500x375,直到预加载程序加载主类之后,它才会变为全屏大小。因此,预载器中的项目定位不正确。我发现,正是我的主课中的这一行让舞台尺寸得以更新:
stage.scaleMode = StageScaleMode.NO_SCALE;
以下是我如何在预加载程序中实现它:
public function Preloader()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
...
}