Передача значения AIR в JavaScript.Как сделать его доступным для $ (document) .ready? - PullRequest
0 голосов
/ 07 марта 2012

Мне нужно получить абсолютный путь к файлу в родном браузере AIR.Я понял это, и предупреждение в моей функции, вызываемое приложением AIR, работает нормально, но, похоже, не может заставить его что-либо делать.

Как сделать siteRoot доступным для моей функции $ (document) .ready?

         function calledFromAS(test) 
            { 
                siteRoot = test;    
                alert(siteRoot);        
            }

        $(document).ready(function(){

        alert(siteRoot);
        })

РЕДАКТИРОВАТЬ: фрагмент кода гораздо большего размера

из моего проекта Flex (где он называется FromAs() вызывается):

var filePath = File.applicationDirectory.nativePath;;

        function init():void {
            html.htmlLoader.window.calledFromAS(filePath);
        }

Из файла js, который создает плеер и списки воспроизведения:

 $(document).ready(function(){


        //alert(siteRoot);

      // instantiate the player so that the playlist always exists

       var myPlaylist = new jPlayerPlaylist({
    jPlayer: "#jquery_jplayer_N",
    cssSelectorAncestor: "#jp_container_N"
      }, [
      {
        mp3:"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3",
        oga:"http://www.jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg"
        //poster: "http://www.jplayer.org/audio/poster/The_Stark_Palace_640x360.png"
    }
      ], {
        playlistOptions: {
        enableRemoveControls: true
         },
         swfPath: "js",
         supplied: "flv"

});




    //hide the player, display homepage content when user clicks home 
    $('#home').click(function(){


        //show home page content
        $('#homeContent').show();

        // remove hover state from all buttons but this one
        $(".button").removeClass("on");
        $(this).addClass("on");


        $('#player_container').hide();         

    })

    //############## begin full video player ############# //
    // instantiate player for full video content.  no playlist
    $('#fullVideo').click(function() {

            //show current video title before video is played
            $('#videoTitle').empty();
            $('#videoTitle').append("Full Video")

            // remove hover state from all buttons but this one
            $(".button").removeClass("on");
            $(this).addClass("on");

            //hide the home content, show the player instead
            $('#homeContent').hide();
            $("#player_container").show().addClass("player_container_1").removeClass("player_container_2");

            //set the playlist
             myPlaylist.setPlaylist([

    {
            title:"Full Video",
            //m4v:"http://dev.brandgnumedia.com/html5video/jplayer/vids/Forest_with_new_slides_NoQA_v2_011712_edits.mp4",
            flv: test + "jplayer/vids/Forest_with_new_slides_NoQA_v2_011712_edits_1.flv"

        }
        ], {
                });

             //hide the playlist
            $('.jp-playlist').hide();                

    });

1 Ответ

1 голос
/ 07 марта 2012

Похоже, вашему Flash-приложению необходимо указать JS путь к вашим файлам.

Чтобы сделать это, вы должны переместить скрипт проигрывателя за пределы .ready() и перейти к отдельной функции.,затем вызовите эту функцию из скрипта AS с указанием пути.

function calledFromAS(path) { 
    //buildPlayer     
}

однако рискованно предположить, что если ваша флэш-память загружена, загружается весь DOM.у вас должна быть функция во флэш-памяти, которая будет вызываться из .ready(), чтобы сообщить флэш-памяти, что весь DOM загружен, и оттуда, чтобы флэш-память вызывала функцию, описанную выше.

...