我正在使用swfobject將swf嵌入到網頁中。使用AS3獲取Flash Player的嵌入寬度/高度
var params = {};
params['movie'] = 'player.swf';
params['wmode'] = 'transparent';
params['bgcolor'] = 'ffffff';
params['allowScriptAccess'] = 'always';
params['allowFullScreen'] = 'true';
var flashvars = {};
flashvars['url'] = 'video.flv';
flashvars['resize'] = 'fit-player';
swfobject.embedSWF("player.swf", "video", "480", "340", "10.1.0", null, flashvars, params);
它創建下列HTML(我測試在FF3.6,所以實際的HTML可能會因您的瀏覽器會略有不同,但應儘量接近):
<object width="480" height="340" type="application/x-shockwave-flash" data="EmbeddedPlayer.swf" id="video" style="visibility: visible;">
<param name="wmode" value="transparent">
<param name="bgcolor" value="ffffff">
<param name="allowScriptAccess" value="always">
<param name="allowFullScreen" value="true">
<param name="flashvars" value="url=MD-Open_ProblemOne_1000k_part2.flv&resize=fit-player">
</object>
我試圖找到從AS3內部獲得'width'和'height'屬性的好方法。 stage.stageWidth
返回CS5中定義的寬度,stage.width返回其孩子的合併尺寸/位置的寬度,LoaderInfo(this.root.loaderInfo).width
引發以下錯誤:
Error: Error #2099: The loading object is not sufficiently loaded to provide this information.
任何幫助將不勝感激!從JS在Flash變量
(這是正確的答案)。 @Arion stage.stageWidth將返回舞臺的寬度,即使它已通過嵌入進行縮放。爲了確保這是準確的,你必須使用這個:** stage.scaleMode = StageScaleMode.NO_SCALE; ** – Marty 2011-05-30 22:23:30
奇怪的是,在Flash CS5中stage.width和height返回初始寬度和高度。 – Codebeat 2012-12-13 02:01:33