Как загрузить внешнюю переменную в swf для воспроизведения другого видеофайла с использованием AS3

#actionscript-3 #flash

#actionscript-3 #flash

Вопрос:

Я новичок в AS3 и нуждаюсь в некоторой помощи.

Я хочу загрузить фильм, зависящий от переменной. Например, я хочу загрузить из

http://example.com/test /‘ variable ‘.mp4’

Итак, я решаю, что на этот раз я хочу воспроизвести x.mp4 — как мне это сделать в AS3?

Это то, что у меня есть до сих пор:

 // ActionScript 3.0
var video:Video = new Video();
addChild(video);

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);
ns.client = {onMetaData:ns_onMetaData, onCuePoint:ns_onCuePoint};

video.attachNetStream(ns);
ns.play("http://example.com/test/" variable ".mp4");

function ns_onMetaData(item:Object):void {
    trace("metaData");
    // Resize video instance.
    video.width = item.width;
    video.height = item.height;
    // Center video instance on Stage.
    video.x = (stage.stageWidth - video.width) / 2;
    video.y = (stage.stageHeight - video.height) / 2;
}
function ns_onCuePoint(item:Object):void {
    trace("cuePoint");
    trace(item.name   "t"   item.time);
}
  

спасибо за вашу помощь

Комментарии:

1. Что пошло не так? На первый взгляд, ваш код выглядит нормально. Какое значение variable ? Единственное, что вам нужно сделать, это установить var variable:String = "x"; где-нибудь перед ns.play вызовом метода.

2. Извините, я не объяснил себя должным образом. я хочу установить переменную вне файла. аналогично добавлению переменной click. clickTag= бла-бла. Но как мне настроить это внутри файла? принять внешнюю переменную?

Ответ №1:

Для этого используются FlashVars:

http://blogs.adobe.com/pdehaan/2006/07/using_flashvars_with_actionscr.html

Вот код из примера. Обратите внимание, что есть две разные записи Flashvars:

 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550"
height="400"
align="middle"
id="main">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="main.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="FlashVars" value="one=1amp;two=2" />
<embed src="main.swf"
width="550"
height="400"
autostart="false"
quality="high"
bgcolor="#ffffff"
FlashVars="one=1amp;two=2"
name="main"
align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
  

Если вы используете swfobject (https://code.google.com/p/swfobject /) у него есть встроенная поддержка для этого.

Редактировать:

Более простым примером может быть:

http://helpx.adobe.com/flash/kb/pass-variables-swfs-flashvars.html

Он содержит пример только для 1 переменной с именем «myVariable»:

 LoaderInfo(this.root.loaderInfo).parameters.myVariable;
  

На странице также есть тестовый проект онлайн.

Комментарии:

1. Извините, я действительно не вижу в AS, где он загружает его в зависимости от внешней переменной. Я просто недостаточно знаю AS3, чтобы знать, как импортировать значение из внешней переменной