2011-08-24 111 views
1

我正在为一家网络公司开发一个Web应用程序,它是一个加载外部swf文件并以幻灯片方式呈现它们的“引擎”,非常类似于呈现的很多这些天的网站前端标题内容区域设置舞台以允许任何舞台宽度或高度

事情已经差不多准备好了,但我碰到了一些设计障碍。虽然我一直在愉快地开发一个930x270的舞台宽度和高度,事实是,并非每一个网站都会使用这些尺寸。因为这个确切的原因,所有运行的使用stage.stageWidth属性(和stage.stageHeight相同),但是我似乎无法动态设置宽度和高度值,即使在网页上使用基本到高级的嵌入技术。

使用Flex/FlashBuilder元信息

[SWF(frameRate=30, widthPercent=100, heightPercent=100)] 

,或者即使我设置一个特定的宽度和高度与否。 例如,如果我没有设置任何东西(只是帧速率),并且将结果的swf嵌入到980x300,stage.stageWidth STILL仅返回500的元素的页面中,则完全搞乱了我的元素如何显示。

我尝试设置的scaleMode过,现在其设置为

stage.scaleMode = StageScaleMode.EXACT_FIT; 

它在我的constructor.Still 500设置的第一件事情(没有任何元信息集,或者甚至widthPercent和heightPercent)。

我需要嵌入式闪存几乎可以在没有重新编译要求的情况下工作,不需要担心宽高比,加载的内容将为该特定项目手动创建,但整个项目依赖于引擎阶段的宽度属性。

对不起,文字的长墙,但我跑出来的想法在这里...

是否有任何MXML或部分财产,我可以修改或一些嵌入战术,我失去了获得阶段属性设置为其嵌入对象的宽度和高度?

+0

我无法理解。 “出于这个原因,所有运行的都使用stage.stageWidth属性”在这种情况下,什么是“一切”?它被使用的原因是什么?你是如何动态设置stageWidth/stageHeight的?在Flex中,您通常不会直接触摸舞台。 – JeffryHouser

+0

它是一个“加载器引擎”项目,其设计仅适用于一件事和一件事:将swf文件加载(从XML文件引用),播放每个文件(一个接一个),并在活动的swf文件完成播放时将每个swf向左移动整个舞台宽度的数量(以便它们可以重置回第1帧关闭屏幕,并且新的活动swf可以开始播放)。 当stage.stageWidth只报告500,那么这意味着每个SWF仅由500偏移,并且它们仅移向左或向右的500 – RedactedProfile

+0

增量因此,当在嵌入标记或SwfObject的元素的宽度和高度是设置为类似930x270的东西,引擎仍然只报告500px的宽度,所有东西(在这种情况下)开始重叠,你看到 – RedactedProfile

回答

2

尝试设置如下:

stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.NO_SCALE; 

而且使用的主要构造之外的方法来获得stageHeight和stageWidth有时阶段是不是“准备好”呢。

+0

啊完美!奇迹般有效!谢谢! :D现在只需调整一些数学运算:D(我知道会有一种方法,只是没有达到它的目的) – RedactedProfile