Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Косячно открываются ссылки на youtube (http://www.flasher.ru/forum/showthread.php?t=186714)

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



Часовой пояс GMT +4, время: 16:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.