0

この問題は私を何ヶ月も壁に押し上げてきました。私のウェブサイトでの私の背景がなぜ理解できません:

www.the-ruck.us

正しくロードされません。

コンピューターで実行すると、すべてが正常に読み込まれるため、コードが機能することはわかっています。ただし、Webに公開して自分のページを参照すると、スライドショーは空白のままになります。

これが私が使用するXMLLoaderクラスのAPIです

コードは次のとおりです。

var slideshowXMLLoader:XMLLoader = new XMLLoader("slideshow.xml", {autoDispose:true, onComplete:LoadXML});

slideshowXMLLoader.load();

function LoadXML(e:Event) {
        slideshowXML = new XML(e.target.content);
        parse(slideshowXML);
}

function parse(ssXML:XML) { wallpaperLinks = slideshowXML.img.attributes(); }

function loadFirstPaper() {
    ticker.addEventListener(TimerEvent.TIMER, changePaper);
    TweenMax.to(landing, .5, {alpha:0, ease:Quint.easeOut});
    TweenMax.to(bloomer, 1, {alpha:0, ease:Quint.easeOut});
    loadWallpaper(randomNumber());
}

function loadWallpaper(i:Number) {
    paperCounter = i;
    var loader:Loader = new Loader();
    var req:URLRequest = new URLRequest(wallpaperLinks[paperCounter]);
    loader.load(req);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeIn);
    }

function fadeIn(e:Event) { 
    if (!isPaused) ticker.start();
    var temp = e.target.content;
    wallpaper.addChild(temp);
    TweenMax.from(temp, fadeTime, {alpha:0, ease:Quint.easeOut});
    }

function changePaper(e:Event) {
    ticker.stop();
    loadWallpaper(randomNumber());
    }

function randomNumber():Number
    { return Math.floor(Math.random() * 53); }

}

slideshow.xmlには次のものが含まれています。

<wallpapers>
    <img link="imgs/one.jpg"></img>
    <img link="imgs/two.jpg"></img>
    <img link="imgs/three.jpg"></img>
    <img link="imgs/four.jpg"></img>
    <img link="imgs/five.jpg"></img>
    <img link="imgs/six.jpg"></img>
    <img link="imgs/seven.jpg"></img>
    <img link="imgs/eight.jpg"></img>
    <img link="imgs/nine.jpg"></img>
    <img link="imgs/ten.jpg"></img>
    <img link="imgs/eleven.jpg"></img>
    <img link="imgs/twelve.jpg"></img>
    <img link="imgs/thirteen.jpg"></img>
    <img link="imgs/fourteen.jpg"></img>
    <img link="imgs/fifteen.jpg"></img>
    <img link="imgs/sixteen.jpg"></img>
    <img link="imgs/seventeen.jpg"></img>
    <img link="imgs/eighteen.jpg"></img>
    <img link="imgs/nineteen.jpg"></img>
    <img link="imgs/twenty.jpg"></img>
    <img link="imgs/twentyone.jpg"></img>
    <img link="imgs/twentytwo.jpg"></img>
    <img link="imgs/twentythree.jpg"></img>
    <img link="imgs/twentyfour.jpg"></img>
    <img link="imgs/twentyfive.jpg"></img>
    <img link="imgs/twentysix.jpg"></img>
    <img link="imgs/twentyseven.jpg"></img>
    <img link="imgs/twentyeight.jpg"></img>
    <img link="imgs/twentynine.jpg"></img>
    <img link="imgs/thirty.jpg"></img>
    <img link="imgs/thirtyone.jpg"></img>
    <img link="imgs/thirtytwo.jpg"></img>
    <img link="imgs/thirtythree.jpg"></img>
    <img link="imgs/thirtyfour.jpg"></img>
    <img link="imgs/thirtyfive.jpg"></img>
    <img link="imgs/thirtysix.jpg"></img>
    <img link="imgs/thirtyseven.jpg"></img>
    <img link="imgs/thirtyeight.jpg"></img>
    <img link="imgs/thirtynine.jpg"></img>
    <img link="imgs/fourty.jpg"></img>
    <img link="imgs/fourtyone.jpg"></img>
    <img link="imgs/fourtytwo.jpg"></img>
    <img link="imgs/fourtythree.jpg"></img>
    <img link="imgs/fourtyfour.jpg"></img>
    <img link="imgs/fourtyfive.jpg"></img>
    <img link="imgs/fourtysix.jpg"></img>
    <img link="imgs/fourtyseven.jpg"></img>
    <img link="imgs/fourtyeight.jpg"></img>
    <img link="imgs/fourtynine.jpg"></img>
    <img link="imgs/fifty.jpg"></img>
    <img link="imgs/fiftyone.jpg"></img>
    <img link="imgs/fiftytwo.jpg"></img>
    <img link="imgs/fiftythree.jpg"></img>
</wallpapers>

私は自分のサイトでFirebugを実行しようとしましたが、それを間違えない限り、エラーや警告は表示されませんでした。だから私は完全に困惑しています。誰かアイデアはありますか?

どんな助けでも深く感謝します、ありがとう。

4

2 に答える 2

0

理解した。問題は

var slideshowXMLLoader:XMLLoader = new XMLLoader("slideshow.xml", {autoDispose:true, onComplete:LoadXML});

XMLLoaderがその仕事をまったく行っていなかったかのどちらかです。または、これは可能性が高いと思いますが、onCompleteイベントが時期尚早に発生していました。上記の行を次のように置き換えました。

var slideshowXMLLoader:URLLoader = new URLLoader();
slideshowXMLLoader.addEventListener(Event.COMPLETE, loadXML);
slideshowXMLLoader.load(new URLRequest("slideshow.xml"));

現在、意図したとおりに機能しているようです。

onComplete呼び出しを正しく機能させる方法を知りたいので、誰かアドバイスがあれば聞いてみたいです。

ありがとう。

于 2012-11-07T14:52:35.887 に答える
0

OK、これが私が信じていることです。あなたのサイトにアクセスしたところ、loadWallpaper() で null 参照エラーがスローされました。null になる可能性がある loadWallpaper() のこの唯一のものは、wallpaperLinks です。wallpaperLinks は、XMLLoader がロードを完了した後に設定されます。loadFirstPaper() を呼び出すコードは示していません。だから私はあなたが競争状態にあるに違いない。お使いのコンピューターでは、XML のローカル ロードはオンラインよりも高速に行われるため、ローカルには表示されません。

これを行い、loadFirstPaper 呼び出しをここに移動します。

function parse(ssXML:XML) { 
    wallpaperLinks = slideshowXML.img.attributes(); 
    loadFirstPaper();
}
于 2012-11-07T00:52:52.960 に答える