SWF не будет работать на сервере. Работает хорошо локально - PullRequest
0 голосов
/ 08 июня 2011

У меня есть баннер (XML_Banner.swf), который должен загружать и поворачивать изображения из файла XML (banner.xml). При предварительном просмотре сайта я не вижу проблем. Однако, когда-то на веб-сервере Linux фильм загружается, но не отображает картинки. Просто черный ящик. Если я перейду к баннеру, он также загрузится без проблем.

http://www.aaronletourneau.ca/ecometrix/Site/Refresh/banner/XML_Banner.swf

Вероятно, это очень простое исправление, которое я продолжаю игнорировать. Вот некоторые детали:

  • Файлы баннеров расположены в папке с названием «banner» внутри корневой папки сайта.
  • Я поместил файлы XML_Banner.swf, XML_Banner.html и banner.xml в папку «banner».
  • Изображения для баннера находятся в папке «img» внутри «баннера».
  • Файл (AC_RunActiveContent.js) находится в папке с именем «Scripts» внутри папки баннера.

Ссылка на файл:

<script type="text/javascript" src="Scripts/AC_RunActiveContent.js"></script>

Код для вставки:

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="878" HEIGHT="220" id="XML_Banner" ALIGN="">

URL: http://www.aaronletourneau.ca/ecometrix/Site/Refresh/index.html

EDIT Вот мой XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<rotator isRandom="false">
  <bannerTime>5</bannerTime>
  <numberOfBanners>7</numberOfBanners>
  <banners showHeader="true">
    <banner>
      <name>Arrival of Spring.</name>
      <body></body>
      <imagePath>img/01.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Fishing in Peru.</name>
      <body></body>
      <imagePath>img/02.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Peruvian Cattle.</name>
      <body></body>
      <imagePath>img/03.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Shoreline of Port Hawksbury, NS.</name>
      <body></body>
      <imagePath>img/04.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Lilies afloat.</name>
      <body></body>
      <imagePath>img/05.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Logging road.</name>
      <body></body>
      <imagePath>img/06.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
    <banner>
      <name>Small rapids.</name>
      <body></body>
      <imagePath>img/07.jpg</imagePath>
      <link>gallery.html</link>
    </banner>
  </banners>
</rotator>

РЕДАКТИРОВАТЬ Вот мой AS:

    //Load from XML File
    stop();
    //Banner 
    var banners:Array = new Array();
    //Image Path
    var imagePaths:Array = new Array();
    //Link URL
    var links:Array = new Array();
    //Body Text
    var bodyTexts:Array = new Array();
    //
    var imageTime:Number;
    //
    var numberOfBanners:Number;
    //
    var isRandom:String;
    //
    var showHeader:String;
    //
    var bannersXML:XML = new XML();
    bannersXML.ignoreWhite = true;
    bannersXML.load("banner/banners.xml");
    bannersXML.onLoad = function(success) {
        if (success) {
            trace("XML LOADED");
            imageTime = parseInt(this.firstChild.firstChild.firstChild)*1000;
            numberOfBanners = parseInt(this.firstChild.childNodes[1].firstChild);
            isRandom = this.firstChild.attributes["isRandom"];
            showHeader = this.firstChild.childNodes[2].attributes["showHeader"];

            var bannerSequence:Array = new Array();
            if (isRandom == "true") {
                //Make a random sequence
                while (bannerSequence.length<numberOfBanners) {
                    newRandomNumber = random(numberOfBanners);
                    //Make sure that the random one chosen is not already chosen
                    for (var i = 0; i<=bannerSequence.length; i++) {
                        if (newRandomNumber != bannerSequence[i]) {
                            alreadyThere = false;
                        } else {
                            alreadyThere = true;
                            break;
                        }
                    }
                    //Add only random values that aren't in the array
                    if (!alreadyThere) {
                        bannerSequence.push(newRandomNumber);
                    }
                }
            } else {
                for (var i = 0; i<numberOfBanners; i++) {
                    bannerSequence.push(i);
                }
            }
        }

        //Read XML in the Random Order Chosen
        for (var i = 0; i<numberOfBanners; i++) {
            banners.push(this.firstChild.childNodes[2].childNodes[bannerSequence[i]].firstChild.firstChild.toString());
            bodyTexts.push(this.firstChild.childNodes[2].childNodes[bannerSequence[i]].childNodes[1].firstChild.nodeValue);
            imagePaths.push(this.firstChild.childNodes[2].childNodes[bannerSequence[i]].childNodes[2].firstChild.nodeValue);
            links.push(this.firstChild.childNodes[2].childNodes[bannerSequence[i]].childNodes[3].firstChild.nodeValue);
        }
        play();
    };
    //Start the image counter at 0
    var imageCounter = 0;

stop();
//Check to see if the banner should be reset
if (imageCounter>=banners.length) {
    imageCounter = 0;
}
//Load banner image  
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.loadClip("banner/img/"+imagePaths[imageCounter],bannerContainer_mc);
var loadingListener:Object = new Object();
loadingListener.onLoadComplete = function() {
    play();
    //Display Header
    if (showHeader == "true") {
        imageText_mc.headerTxt.text = banners[imageCounter].toString();
    } else {
        imageText_mc.headerTxt.text = "";
        imageText_mc._alpha = 0;
    }
    //Button and Link Handling
    if (links[imageCounter] != null) {
        trace("LINK : "+links[imageCounter]);
        bannerContainer_mc.onRelease = function() {
            getURL(links[imageCounter], "_self");
        };
    } else {
        delete bannerContainer_mc.onRelease;
    }
};
imageLoader.addListener(loadingListener);

Что-то не так или я что-то упустил? Любая помощь будет принята с благодарностью. Большое, большое спасибо заранее.

1 Ответ

0 голосов
/ 08 июня 2011

Проблема в том, что у вас неправильные URL.SWF ищет ваши изображения в

http://www.aaronletourneau.ca/ecometrix/Site/Refresh/img/01.jpg

, но они расположены в

http://www.aaronletourneau.ca/ecometrix/Site/Refresh/banner/img/01.jpg

. Вы можете добавить этот относительный путь в xml banner/img/01.jpg в качестве источника или иметь flashVarс этим относительным путем.Вы должны изменить свой код AS, чтобы использовать этот относительный путь, если он указан.

SWF-файл берет относительные URL-адреса из базового URL-адреса HTML-кода, который он включает, а не там, где находится SWF.

...