2011-12-19 177 views
0

我想加載一個位於外部服務器的SWF文件並在客戶端播放它。我在這方面取得了成功,但是我在加載時遇到了對齊問題。我使用下面的代碼:加載swf文件

import flash.display.*; 
import flash.net.URLRequest; 

var rect:Shape = new Shape(); 
rect.graphics.beginFill(0xFFFFFF); 
rect.graphics.drawRect(0,0,1000,1000); 
addChild(rect); 

var ldr:Loader = new Loader(); 
ldr.mask = rect; 
var url:String = "http://www.unknown.example.com/content.swf"; 
var urlReq:URLRequest = new URLRequest(url); 
ldr.load(urlReq); 
addChild(ldr); 

它加載很好,但是當我最大限度的框架thevideo定位正在發生變化,只有視頻的一半是在屏幕上可見。

回答

0

嘗試在你的代碼的頂部添加此幀1:

import flash.display.StageScaleMode; 
import flash.display.StageAlign; 

stage.scaleMode = StageScaleMode.NO_SCALE;// Don't scale the contents of the swf (you may not want to use this 
stage.align = StageAlign.TOP_LEFT;// Align the stage to the top left corner of the screen 

您可能需要將其添加到其它SWF爲好,但我不知道。

+0

感謝它的工作,但如何在中心對齊! – Nishu 2011-12-19 06:35:31

+0

噢,只需將TOP_LEFT更改爲CENTER – annonymously 2011-12-19 06:38:52

+0

即可!我試圖說是顯示編譯時錯誤: 「通過靜態類型類的參考訪問可能未定義的屬性CENTER」 – Nishu 2011-12-19 06:47:33

0
import flash.display.StageScaleMode; 
import flash.display.StageAlign; 

stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.NO_SCALE; 

rect.x = stage.stageWidth/2; 
rect.y = stage.stageHeight/2; 

總是定位在舞臺的中心。舞臺的中心是通過找到舞臺的寬度然後除以二來計算的。我們簡單地將其設置爲rect的.x屬性的值,它將完成這項工作。同樣的事情也適用於舞臺高度和矩形的.y屬性。