·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0中舞台宽度的取不到值的问题(stageWidth与stageHeight

时间:2012-11-20 01:05blueidea.com
首先区分一下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的地址,也没有这种问题。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器