| firefedot |
07.11.2012 12:51 |
Косячно открываются ссылки на youtube
Доброе, в общем есть несколько кнопок, по нажатию на каждую открывается панелька с ролик из youtube.
У панельки есть кнопка закрыть, которая скрывает панель с роликом. Так вот, если поле закрытия панельки и нажатия на другую кнопку с ролик открывается предыдущий ролик, а если нажать второй раз, то откроется нужный. Сейчас использую двойной вызов функции, но это как то не хорошо, подскажите где и что не так. Код ниже.
Вот это для слое ютуба (да, к сожалению пишу не ООП):
Код AS3:
var urlText,urlText_id, url_you, url_v:String;
url_you="http://www.youtube.com/v/";
url_v="?version=3";
var pattern:RegExp = /watch(?:\/|(?:\?|.*&)v=)([\w\-]+)/ig;
var str:String;
var result:Array;
var urlReq:URLRequest;
var player:Object;
function Main(urlText_new):void
{
result = pattern.exec(urlText_new);
urlText_id=result[1];
trace(urlText_id);
str=url_you+urlText_id+url_v;
trace("str функции Main "+str);
urlReq= new URLRequest(str);
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
Security.allowDomain("www.youtube.com");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
loader.load(urlReq);
function onLoaderInit(event:Event):void {
addChild(loader);
player = loader.content;
player.addEventListener("onReady", onPlayerReady);
trace(player.x);
player.x=-250;
player.y=-60;
player.scaleX=0.87;
player.scaleY=0.87;
trace(player.x);
}
function onPlayerReady(event:Event):void {
trace("player ready:", Object(event).data);
}
}
а вот код на кпопках, данные беру из XML:
Код AS3:
video_video.visible=false;
youtube.visible=false;
pf_present.kav.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.pol.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.rus.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.reg1.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.reg2.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.ssk.addEventListener(MouseEvent.CLICK, presentClick);
pf_present.ter.addEventListener(MouseEvent.CLICK, presentClick);
video_video.close_y.addEventListener(MouseEvent.CLICK, closeYoutube);
function closeYoutube (q:MouseEvent):void{
video_video.visible=false;
youtube.visible=false;
youtube.urlText=" ";
youtube.player.pauseVideo();
}
var xmlPath_portfolio:String = "xml/acc_panel.xml";
var xml_portfolio:XML;
var loader_portfolio = new URLLoader();
loader_portfolio.load(new URLRequest(xmlPath_portfolio));
loader_portfolio.addEventListener(Event.COMPLETE, xmlLoader_pf);
function xmlLoader_pf(q:Event):void{
xml_portfolio = new XML(loader_portfolio.data);
trace(xml_portfolio.data.item[0].@title, xml_portfolio.data.item.@text);
}
function presentClick (q:MouseEvent):void{
video_video.visible=true;
switch(q.target.name){
case "kav":
youtube.Main(xml_portfolio.data.item[0].@title);
youtube.visible=true;
youtube.Main(xml_portfolio.data.item[0].@title);
break;
case "pol":
youtube.Main(xml_portfolio.data.item[1].@title);
youtube.visible=true;
youtube.Main(xml_portfolio.data.item[1].@title);
break;
case "rus":
youtube.Main(xml_portfolio.data.item[2].@title);
youtube.visible=true;
youtube.Main(xml_portfolio.data.item[2].@title);
break;
}
}
|