2011-12-19 122 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属性。