2010-12-23 63 views
0

我真的是Flash新手。所以我试图制作一个显示Vimeo视频的闪存容器。这是我的动作。如何编写ActionScript以传递flashvars?

var videoContainer:Sprite = new Sprite(); 
var moogaloop:Sprite; // the video player 
var moogaplayer:*; // reference to the moogaloop api 
var player_width :int = stage.stageWidth; 
var player_height:int = stage.stageHeight; 
var _loading:Boolean = false; 

var vidId:String; 

function open ($id:String) : void 
{ 
    if(moogaplayer){ 
     moogaplayer.api_loadVideo($id); 
    }else{ 
     loadPlayer($id); 
    } 
} 

function loadPlayer ($id:String) : void 
{ 
    var v_loader:Loader = new Loader(); 
    var v_request:URLRequest = new URLRequest("http://bitcast.vimeo.com/vimeo/swf/moogaloop.swf?server=vimeo.com&force_embed=0&clip_id=" + $id + "&width=" + player_width + "&height=" + player_height); 
    v_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    v_loader.load(v_request); 
} 

function onCompleteHandler(e:Event):void 
{ 
    moogaloop = new Sprite(); 
    moogaplayer = moogaloop.addChild(e.currentTarget.content); 

    var v_mask:Sprite = new Sprite(); 
    with(v_mask.graphics) { 
     beginFill(0x000000, 1); 
     drawRect(moogaloop.x, moogaloop.y, player_width, player_height); 
     endFill(); 
    } 

    this.addChild(v_mask); 
    moogaloop.mask = v_mask; 

    videoContainer.addChild(moogaloop); 
} 

function onProgressHandler(e:ProgressEvent):void 
{ 
    var percent:Number = e.bytesLoaded/e.bytesTotal; 
    trace(percent); 
} 

Security.allowDomain("http://bitcast.vimeo.com"); 
open(vidId); 

this.addChild(videoContainer); 

我想通过URL设置vidId。例如: http://dl.dropbox.com/u/389232/bhssfinearts/vimeoz.swf?vidId=17439665 它不起作用。 它工作正常,如果我设置视频ID打开()

我如何得到它的工作? 非常感谢您的时间。

回答

1

使用SWFOjbect,有这取决于你如何发布swfobject的方式有两种:

动态方法:

<script type="text/javascript"> 
var flashvars = {}; 
flashvars.vidId='blahblah'; 
</script> 

的静态方法:

<param name="flashvars" value="vidId='blahblah'" /> 

并在您的Flash代码,你可以检索变量如下:

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; 

var vidId:String = paramObj.vidId; 

只是一个注释......如果您在Flash中测试,这将不起作用。你必须在浏览器中用SWFObject代码打开你的html页面。

+0

对不起,我真的很新,但它仍然无法正常工作。 http://dl.dropbox.com/u/389232/bhssfinearts/vimeo.html – caoran9238 2010-12-23 18:37:51

相关问题