Как запрограммировать Actionscript на передачу flashvars? - PullRequest
0 голосов
/ 23 декабря 2010

Я действительно новичок во Flash. Поэтому я пытаюсь создать флэш-контейнер для отображения видео Vimeo. Вот мой сценарий действий.

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 );

И я хочу установить vidId по URL. Например: http://dl.dropbox.com/u/389232/bhssfinearts/vimeoz.swf?vidId=17439665 И это не работает. Работает нормально, если я установил идентификатор видео в open ()

Как мне заставить его работать? Большое спасибо за ваше время.

1 Ответ

1 голос
/ 23 декабря 2010

Используйте SWFOjbect, есть два способа, в зависимости от того, как вы публикуете swfobject:

Динамический метод:

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

Статический метод:

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

И в вашем флеш-коде вы можете получить переменные следующим образом:

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

var vidId:String = paramObj.vidId;

Просто примечание ... это не сработает, если вы тестируете во Flash. Вы должны открыть свою HTML-страницу с кодом SWFObject внутри браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...