[AS3]as3.0中舞台宽度的取不到值的问题(stageWidth与stageHeight
首先区分一下stage的stageWidth和width属性。stage.stageWidth是flash player的宽度,stage.width是指stage里content的宽度,如果这个舞台(stage)里什么内容都没有,stage.width就是0
首先区分一下stage的stageWidth和width属性。stage.stageWidth是flash player的宽度,stage.width是指stage里content的宽度,如果这个舞台(stage)里什么内容都没有,stage.width就是0。
现在的需求是在运行期获得舞台的高宽,以期编码实现将组件添加到舞台中央等这样的效果。但是我得到的stageWidth 和 stageHeight 都为0。
一般认为,flash文件在不同浏览器中的行为是一致的。如上所述,在FireFox/OSX 和 IE/Win这种搭配才有这样的bug。
在html页面使用使用SWFObject也有这样的问题:http://foxling.cn/as-flex-air/swfobject-bug-at-ie/。将这位同志的经验抄录如下:
在as里解决的方法与上面所述是一致的。
SWFObject.js里的解决方案
在swfobject.js里找到函数function createSWF(attObj, parObj, id)里面针对winIE的处理方法是:
el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
看了一下Adobe自己的AC_OETags.js,他是用document.write方法直接写入,没有这个问题;
直接写静态html(object)没有这种问题;
直接访问这个flash的地址,也没有这种问题。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...