Я новичок в разработке Flash, и мне только недавно было поручено исправить старый проект Flash на моей работе. По сути, приложение представляет собой видеостудию, благодаря которой пользователи могут записывать до 60-х видеоклипов через свою веб-камеру, а затем обмениваться ими по электронной почте, в Твиттере или Facebook.
При запуске приложения генерируется идентификатор видео, который используется в качестве имени файла видео, когда оно передается в потоковом режиме и сохраняется на сервере. Я уверен, что есть лучший способ сделать это, но я пришел к выводу, что нужно взять этот идентификатор видео и передать его на страницу «Поделиться» в качестве переменной URL, а затем использовать его для доступа к видео и обмена им с сервер.
Проблема в том, что я не знаю, как получить доступ к идентификатору видео с кнопки, которая отправляет пользователя на страницу «Поделиться».
Вот код:
var nc:NetConnection = new NetConnection();
var ns:NetStream;
var cam:Camera;
var mic:Microphone;
var vidId:String = configName();
function tracer(p_s) {
trace(p_s);
}
nc.onStatus = function(p_o:Object):Void {
//tracer(p_o.code);
if (p_o.code == "NetConnection.Connect.Success") {
setupApp();
}
};
function configName():String {
var charStr:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var s1:String = charStr.charAt(random(charStr.length));
var s2:String = charStr.charAt(random(charStr.length));
var oDate:Date = new Date();
var vidDate = oDate.getMonth()+1+""+oDate.getDate()+""+oDate.getFullYear()+""+oDate.getHours()+""+oDate.getMinutes()+""+oDate.getMilliseconds();
var vidName:String = s1+vidDate+s2;
return vidName;
}
function setupApp() {
tracer("setupApp"+vidId);
ns = new NetStream(nc);
ns.onPlayStatus = function(p_o):Void {
tracer(p_o.code);
var o:Object = new Object();
o.target = replay;
onStop(o);
};
cam = Camera.get();
mic = Microphone.get();
cam.setMode(640,480,15);
cam.setQuality(100000,0);
attachAV();
recordNow.addEventListener("click", onRecord);
replay.addEventListener("click", onPlay);
}
function attachAV():Void {
tracer("attachAV");
nowLive_video.attachVideo(cam);
nowLive_video.attachAudio(mic);
}
function onRecord():Void {
tracer("onRecord");
ns.attachVideo(cam);
ns.attachAudio(mic);
ns.publish("pending/"+vidId, "record");
recordNow.removeEventListener("click",onRecord);
recordNow.addEventListener("click",onStop);
//recordNow.setLabel("Stop");
pbar.play();
btnSkin.gotoAndStop("recordStop");
replay.enabled = false;
tellTarget ("_root.get_ready") {
play();
}
unpause();
}
function onPlay():Void {
tracer("onPlay "+vidId);
nowRecord_video.attachVideo(ns);
nowRecord_video.attachAudio(ns);
ns.play("pending/"+vidId);
replay.removeEventListener("click", onPlay);
replay.addEventListener("click", onStop);
replay.setLabel("Stop");
recordNow.enabled = false;
}
function onStop(p_o:Object):Void {
tracer("onStop");
if (p_o.target == recordNow) {
tracer(p_o.target);
ns.publish(false);
recordNow.removeEventListener("click", onStop);
recordNow.addEventListener("click", onRecord);
//recordNow.setLabel("Record");
pbar.stop();
cutScreen.play();
btnSkin.gotoAndStop("recordNorm");
replay.enabled = true;
restartTimer();
//onPlay();
accept.play();
} else if (p_o.target == replay) {
tracer(p_o.target);
ns.play(false);
nowRecord_video.clear();
replay.removeEventListener("click", onStop);
replay.addEventListener("click", onPlay);
replay.setLabel("Replay");
recordNow.enabled = true;
}
}
nc.connect("my_server_url");
А это код кнопки, которая перенаправит пользователя на нужную страницу:
on (press) {
var vidId:String = (what do I put here?);
getURL("share/?id="+vidId, "_self");
}
Я прошу прощения, если что-то из этого неясно - я абсолютный новичок во Flash и буду признателен за любую помощь, которую может предложить каждый.
Спасибо.