Antworten auf deine Fragen:
Neues Thema erstellen

swf object mit xml füttern und einbinden

susiH

Aktives Mitglied

hi leute

ich habe mir eine bereits fertige photogalerie runtergeladen im swf format mit den dazugehörigen dateien, wie die xml, die fla und ein paar bilder.
unter diesem link seht ihr alle dateien, die mit dabei waren.



in der "copy this code.html" steht das:

PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="550" height="135" id="menu" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="imageLoop.swf" />
<param name="quality" value="high" />
<param name="allowFullScreen" value="true" />
<embed src="imageLoop.swf" quality="high" width="550" height="135" name="menu" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
<noscript>
<a href="http://www.ffiles.com/">More flash files</a>.
</noscript>


und in der "imageLoopData" steht das:

PHP:
<imageLoop>
    <img url="http://www.adobe.com/">assets/image/image1.jpg</img>
    <img url="http://www.viteb.com/">assets/image/image2.jpg</img>
    <img url="http://www.adobe.com/">assets/image/image3.jpg</img>
    <img url="http://www.viteb.com/">assets/image/image4.jpg</img>
    <img url="http://www.adobe.com/">assets/image/image5.jpg</img>
    <img url="http://www.viteb.com/">assets/image/image6.jpg</img>
</imageLoop>



das merkwürdige ist ja auch dass es keine bilder anzeigt, weder wenn ich die dateien so ausprobiere, wie ich sie runtergeladen habe, noch wenn ich die quellcodes verändere.

ich brauche ganz dringend hilfe und am besten so, dass html anfänger das auch verstehen
 
Zuletzt bearbeitet von einem Moderator:

kleeaar

zwo-eins-risiko!

AW: swf object mit xml füttern und einbinden

naja... du hast in der XML den Pfad der Bilder gegeben als assets/image/image1.jpgdu hast die bilder aber im selben Verzeichnis wie die Swf...
deher sucht die datei die bilder in einem nicht existierenden Verzeichnis.
Lösche einfach assets/image/ raus...

und in der Fla sieht man, dass die XML-Datei im Verzeichnis data liegen müsste...
Code:
getImageXML.load("data/imageLoopData.xml");

Grüße
 
Zuletzt bearbeitet:

susiH

Aktives Mitglied

AW: swf object mit xml füttern und einbinden

also jetzt mal ernsthaft... ich glaub ich stell mich heut einfach zu dämlich an.

ich habe die pfade geändert und einen data ordner erstellt und alles klappt wunderbar.

nun wollte ich aber diese bildergalerie auf einer webseite einfügen. die dateien für die galerie sollen aber auf meinem server bleiben.

ich habe die pfade dementsprechend geändert. diesen code habe ich auf der webseite eingefügt

PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="550" height="135" id="menu" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="http://susi.artmessengers/de/ebay/galerie/galerie_1/imageLoop.swf" />
<param name="quality" value="high" />
<param name="allowFullScreen" value="true" />
<embed src="http://susi.artmessengers/de/ebay/galerie/galerie_1/imageLoop.swf" quality="high" width="550" height="135" name="menu" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Meine XML sieht so aus

PHP:
<imageLoop>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image1.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image2.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image3.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image4.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image5.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">image6.jpg</img>
</imageLoop>

und die struktur könnt ihr hier sehen.
 
Zuletzt bearbeitet von einem Moderator:

kleeaar

zwo-eins-risiko!

AW: swf object mit xml füttern und einbinden

aaalso:
wenn du die SWF-Datei auf einem Server A hast und die Dateien auf einem server B hast, denkt sich flash, dass das ein Sicherheitsrisiko ist und unterbindet das Laden externer inhalte.
Das kann man aber durch folgenden Actionscript-Befehl für sämtliche andere Domains erlauben:
Code:
System.security.allowDomain("*");

Grüße
 

susiH

Aktives Mitglied

ist das egal, an welche stelle ich das schreibe? das wäre der actionscriptcode aus der imageLoop.fla:


PHP:
var getImageXML:XML = new XML();
getImageXML.ignoreWhite = true;
getImageXML.load("data/imageLoopData.xml")

var imageArr:Array = new Array()
var imagRatioNum:Number = 1

var _counterNum:Number = 0
var _totalLoopNum:Number = 0
var image_mc:MovieClip
var speed:Number = 2

var gapImageNum:Number    = 5;
var scrollSpeedNum:Number = speed
var hitCounterNum:Number = 0

//Load XML
init();
function init()
{
    getImageXML.onLoad = function(success)
    {
        if(success)
        {
            for(var i = 0; i<this.firstChild.childNodes.length; i++)
            {
                imageArr.push({image:this.firstChild.childNodes[i].firstChild.nodeValue, siteURL:this.firstChild.childNodes[i].attributes.url});
            }
        }
        createLoopRatio()
        makeLoopStrip()
    }
}

function createLoopRatio()
{
    imagRatioNum = Math.ceil(15 / imageArr.length)
    _totalLoopNum = imagRatioNum * imageArr.length
}
function makeLoopStrip()
{
    image_mc = imageScrollMc.attachMovie("_blankMc", "image_mc" + _counterNum, _counterNum);
    var imageRepeatedNum:Number = (_counterNum % imageArr.length)
    
    image_mc._indexID = imageRepeatedNum;
    
    var mclListener:Object = new Object();
    mclListener.onLoadStart = function(target_mc:MovieClip) 
    {
    };
    mclListener.onLoadComplete = function(target_mc:MovieClip) 
    {
    };
    mclListener.onLoadInit = function(target_mc:MovieClip) 
    {
        resizeImage(target_mc, 800, 115)
        
        if(_counterNum == 0)
        {
            target_mc._x = (target_mc._parent._parent._width + gapImageNum) * 0
        }
        else
        {
            target_mc._x = (target_mc._parent._parent._width + gapImageNum)
        }
        
        _counterNum++

        if(_counterNum < _totalLoopNum)
        {
            makeLoopStrip();
        }
        else
        {
            _root.onEnterFrame = imageLoopScroll;
        }
        target_mc.onRelease = function()
        {
            getURL(imageArr[this._parent._indexID].siteURL);
        }
        target_mc.onRollOver = function()
        {
            scrollSpeedNum = 0;
        }
        target_mc.onRollOut = function()
        {
            scrollSpeedNum = speed;
        }
        

    };
    
    var imageHolderMc:MovieClip = image_mc.createEmptyMovieClip("imageHolderMc", 2)
    
    var image_mcl:MovieClipLoader = new MovieClipLoader();
    image_mcl.addListener(mclListener);
    image_mcl.loadClip(imageArr[imageRepeatedNum].image, imageHolderMc);

    
}

function imageLoopScroll()
{
    for(var i = 0; i<_totalLoopNum; i++)
    {
        eval("imageScrollMc.image_mc"+i+".imageHolderMc")._x -= scrollSpeedNum
    }

    if(repeatHitMc.hitTest(eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")))
    {
        if(hitCounterNum == 0)
        {
            var lastNum:Number = (_totalLoopNum-1)
            eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")._x = (eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._x + eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._width) +gapImageNum;
        }
        else
        {
            var lastNum:Number = (hitCounterNum-1)
            eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")._x = (eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._x + eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._width) + gapImageNum;
        }
        
        hitCounterNum++;
        if(hitCounterNum >= _totalLoopNum)
        {
            hitCounterNum = 0
        }
    }
}

//Scale Image
function resizeImage (originalImage, toWidth, toHeight)
{
    // Get the original geometry and calculate scales
    var imgwidth = originalImage._width;
    var imgheight = originalImage._height;
    var xscale = imgwidth / toWidth;
    var yscale = imgheight / toHeight;
    // Recalculate new size with default ratio
    if (yscale > xscale)
    {
        var new_width = Math.round (imgwidth * (1 / yscale));
        var new_height = Math.round (imgheight * (1 / yscale));
    }
    else
    {
        var new_width = Math.round (imgwidth * (1 / xscale));
        var new_height = Math.round (imgheight * (1 / xscale));
    }
    // Resize the original image
    originalImage._width = new_width;
    originalImage._height = new_height;
}
vielleicht noch mal, damit ihr besser der dateistruktur folgen könnt...

es sind alle dateien, inklusive der swf auf meinem server.und auf der webseite, die die galerie anzeigen soll habe ich diesen code eingefügt:

PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="550" height="135" id="menu" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="http://susi.artmessengers.de/ebay/galerie/galerie_1/imageLoop.swf" />
<param name="quality" value="high" />
<param name="play" value="true" />
<param name="allowFullScreen" value="true" />
<embed src="http://susi.artmessengers.de/ebay/galerie/galerie_1/imageLoop.swf" quality="high" width="550" height="135" name="menu" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
die dateistruktur könnt ihr hier sehen
 
Zuletzt bearbeitet von einem Moderator:

cebito

undefined

AW: swf object mit xml füttern und einbinden

Würdest du dir bitte angewöhnen die Codewerkzeuge im Editor zu benutzen? Ist doch offensichtlich, das für potentielle Helfer dann Code und restlicher Text besser auseinanderzuhalten sind und der Code auch so besser lesbar wird. Nicht umsonst hatte ich schon den ersten Beitrag dementsprechend geändert.
 
Zuletzt bearbeitet:

susiH

Aktives Mitglied

AW: swf object mit xml füttern und einbinden

bist du sicher, dass das geht, wenn die html auf einem anderen server liegt, wie die anderen dateien?? also es sollen wirklich alle dateien, einschließlich xml, swf und bilder auf meinem server liegen.
 

kleeaar

zwo-eins-risiko!

AW: swf object mit xml füttern und einbinden

ja, soetwas funktioniert schon... hab ja sowas auch auf myspace und so laufen.
wenn es nicht funktioniert, musst du vllt auch noch

<param name="allowScriptAccess" value="sameDomain" />

auf

<param name="allowScriptAccess" value="always" />

ändern...
Weiß jetzt aber nicht ob das tatsächlich nötig ist...

Grüße
 

susiH

Aktives Mitglied

AW: swf object mit xml füttern und einbinden

oh mann es geht einfach nicht. kannst du dir noch ein letztes mal den code und die pfade anschauen??

also der code aus der .fla sieht jetzt so aus:

HTML:
System.security.allowDomain("http://susi.artmessengers.de");
var getImageXML:XML = new XML();
getImageXML.ignoreWhite = true;
getImageXML.load("data/imageLoopData.xml")

var imageArr:Array = new Array()
var imagRatioNum:Number = 1

var _counterNum:Number = 0
var _totalLoopNum:Number = 0
var image_mc:MovieClip
var speed:Number = 2

var gapImageNum:Number    = 5;
var scrollSpeedNum:Number = speed
var hitCounterNum:Number = 0

//Load XML
init();
function init()
{
    getImageXML.onLoad = function(success)
    {
        if(success)
        {
            for(var i = 0; i<this.firstChild.childNodes.length; i++)
            {
                imageArr.push({image:this.firstChild.childNodes[i].firstChild.nodeValue, siteURL:this.firstChild.childNodes[i].attributes.url});
            }
        }
        createLoopRatio()
        makeLoopStrip()
    }
}

function createLoopRatio()
{
    imagRatioNum = Math.ceil(15 / imageArr.length)
    _totalLoopNum = imagRatioNum * imageArr.length
}
function makeLoopStrip()
{
    image_mc = imageScrollMc.attachMovie("_blankMc", "image_mc" + _counterNum, _counterNum);
    var imageRepeatedNum:Number = (_counterNum % imageArr.length)
    
    image_mc._indexID = imageRepeatedNum;
    
    var mclListener:Object = new Object();
    mclListener.onLoadStart = function(target_mc:MovieClip) 
    {
    };
    mclListener.onLoadComplete = function(target_mc:MovieClip) 
    {
    };
    mclListener.onLoadInit = function(target_mc:MovieClip) 
    {
        resizeImage(target_mc, 800, 115)
        
        if(_counterNum == 0)
        {
            target_mc._x = (target_mc._parent._parent._width + gapImageNum) * 0
        }
        else
        {
            target_mc._x = (target_mc._parent._parent._width + gapImageNum)
        }
        
        _counterNum++

        if(_counterNum < _totalLoopNum)
        {
            makeLoopStrip();
        }
        else
        {
            _root.onEnterFrame = imageLoopScroll;
        }
        target_mc.onRelease = function()
        {
            getURL(imageArr[this._parent._indexID].siteURL);
        }
        target_mc.onRollOver = function()
        {
            scrollSpeedNum = 0;
        }
        target_mc.onRollOut = function()
        {
            scrollSpeedNum = speed;
        }
        

    };
    
    var imageHolderMc:MovieClip = image_mc.createEmptyMovieClip("imageHolderMc", 2)
    
    var image_mcl:MovieClipLoader = new MovieClipLoader();
    image_mcl.addListener(mclListener);
    image_mcl.loadClip(imageArr[imageRepeatedNum].image, imageHolderMc);

    
}

function imageLoopScroll()
{
    for(var i = 0; i<_totalLoopNum; i++)
    {
        eval("imageScrollMc.image_mc"+i+".imageHolderMc")._x -= scrollSpeedNum
    }

    if(repeatHitMc.hitTest(eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")))
    {
        if(hitCounterNum == 0)
        {
            var lastNum:Number = (_totalLoopNum-1)
            eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")._x = (eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._x + eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._width) +gapImageNum;
        }
        else
        {
            var lastNum:Number = (hitCounterNum-1)
            eval("imageScrollMc.image_mc"+hitCounterNum+".imageHolderMc")._x = (eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._x + eval("imageScrollMc.image_mc"+lastNum+".imageHolderMc")._width) + gapImageNum;
        }
        
        hitCounterNum++;
        if(hitCounterNum >= _totalLoopNum)
        {
            hitCounterNum = 0
        }
    }
}

//Scale Image
function resizeImage (originalImage, toWidth, toHeight)
{
    // Get the original geometry and calculate scales
    var imgwidth = originalImage._width;
    var imgheight = originalImage._height;
    var xscale = imgwidth / toWidth;
    var yscale = imgheight / toHeight;
    // Recalculate new size with default ratio
    if (yscale > xscale)
    {
        var new_width = Math.round (imgwidth * (1 / yscale));
        var new_height = Math.round (imgheight * (1 / yscale));
    }
    else
    {
        var new_width = Math.round (imgwidth * (1 / xscale));
        var new_height = Math.round (imgheight * (1 / xscale));
    }
    // Resize the original image
    originalImage._width = new_width;
    originalImage._height = new_height;
}


das ist der code, den ich auf die webseite einfüge:

HTML:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="550" height="135" id="menu" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="movie" value="http://susi.artmessengers.de/ebay/galerie/galerie_1/imageLoop.swf" />
<param name="quality" value="high" />
<param name="allowFullScreen" value="true" />
<embed src="http://susi.artmessengers.de/ebay/galerie/galerie_1/imageLoop.swf" quality="high" width="550" height="135" name="menu" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

die xml sieht so aus:
HTML:
<imageLoop>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image1.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image2.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image3.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image4.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image5.jpg</img>
    <img url="http://susi.artmessengers.de/ebay/galerie/galerie_1">../image6.jpg</img>
</imageLoop>

hier kann man die struktur sehen:

http://susi.artmessengers.de/index.php?dir=./ebay/galerie/galerie_1


und das wäre der vollständige link zur swf:

http://susi.artmessengers.de/ebay/galerie/galerie_1/imageLoop.swf
 

kleeaar

zwo-eins-risiko!

AW: swf object mit xml füttern und einbinden

in deinem embed-Tag musst du den allowScriptAccess tag auch noch umändern...

allowScriptAccess="always"

Aber sonst sollte es eigentlich funktionieren...
manchmal liegt es auch an den Domains in System.Security.allowdomain...
Deshalb schreibe ich oft nur ein Sternchen rein alos so ('*') dann werden alle domais akzeptiert...

Grüße
 

susiH

Aktives Mitglied

AW: swf object mit xml füttern und einbinden

man ich gebs gleich auf... es will einfach nicht gehen. es werden keine bilder angezeigt. das einzige, ist die größe, die er frei lässt.

könntest du mir vielleicht sagen, wie du das bei myspace aufgebaut hast?? viellecith kann ich das auf mein problem übertragen. das ist ja auch ziemlich schwer für euch, sich mit diesen ferndiagnosen auseinander zu setzen.

ich denke immernoch, dass ich irgendwas falsch "verknüpft" habe... also dass irgendwelche pfade nicht stimmen. obwohl ich schon alle varianten ausprobiert habe.
aber was mich ja am meisten verwirrt, ist dass es ja funktioniert, wenn ich aufm pc habe und dort alle verknüpfungen anpasse. aber wenn ichs hochlade und die verknüpfungen anpasse, rührt sich nichts mehr
 
Zuletzt bearbeitet:

susiH

Aktives Mitglied

AW: swf object mit xml füttern und einbinden

hi,

ich habe mich gerade nochmal schlau gemacht und dabei bin ich über den begriff "xmlconnector" gestolpert!
wäre das eine möglichkeit, endlich die galerie zum laufen zu bringen und wenn ja, wie mache ich das??
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.496
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben