繁体   English   中英

actionscript flex,如何将浏览器宽度发送到swf本身

[英]actionscript flex, how to send browser width to the swf itself

我正在使用flex,但是actionscript的想法同样出色。

flex <s:Application>标签的height="100%" width="100%"因此当浏览器调整大小时,swf适合浏览器。

我的问题是我有一个<s:Label> ,我需要根据浏览器的实际/当前大小进行定位。

<s:Application height="100%" width="100%">
     .....
     <s:Label text="hello" x="?" y=">" />

</s:Application>

我听说可以使用Application.application.width; 但我得到一个编译错误,它不知道那是什么。

任何想法如何做到这一点。 我正在尝试在浏览器中调整swf的当前大小,因为浏览器会调整大小。

据我所知,以下情况应该有效。 如果您在基本应用程序中,Application.application与此相同。 绑定应允许在初始化后更改大小。

<s:Application height="100%" width="100%">
     .....
     <s:Label text="hello" x="{width}" y="" />

</s:Application>

编辑:我刚检查过它确实有效。 要将你的标签放在舞台的中间,你只需要这样做

<s:Application height="100%" width="100%">
         .....
         <s:Label text="hello" x="{width/2}" y="{height/2}" />

</s:Application>

你只能在舞台上添加元素时知道舞台大小,你可以试试这样的eventdelegate

app.addEventListener(Event.ADDED_TO_STAGE,init);
private function init(evt:Event):void{
   trace(stage.stageWidth);
   trace(stage.stageHeight);
}

在浏览器调整大小时调用javascript函数。 从那里获得对swf的引用,并调用AS函数来调整标签的大小。 传递浏览器的宽度/高度。

这里的例子

更新:更正:ExternalInterface将AS转到JS。

目前还不完全清楚你要做什么。 xy是位置元素, widthheight是大小元素。 如果要定位标签,则应该使用top, left, rightbottom而不是xy如果您希望它的大小作为父控件的大小。

如果希望标签居中,可以使用horizontalCenterverticalCenter

如果你把它的布局控件内像一个panelcanvas你可以设置其leftright为0,有父画布大小。

如果您的标签总是位于不同的位置,具体取决于大小,您可以覆盖updateDisplayList来设置位置。 这是否适用于是否将其放在布局控件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM