[英]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。
目前还不完全清楚你要做什么。 x
和y
是位置元素, width
和height
是大小元素。 如果要定位标签,则应该使用top, left, right
和bottom
而不是x
和y
如果您希望它的大小作为父控件的大小。
如果希望标签居中,可以使用horizontalCenter
和verticalCenter
。
如果你把它的布局控件内像一个panel
或canvas
你可以设置其left
和right
为0,有父画布大小。
如果您的标签总是位于不同的位置,具体取决于大小,您可以覆盖updateDisplayList
来设置位置。 这是否适用于是否将其放在布局控件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.