2011-01-13 1 views
0

Ich habe ein Flex-Projekt, in dem ich eine Flash-SWF mit einem Bildbetrachter einbetten. Die eingebettete SWF-Datei wird durch eine XML-Datei ergänzt, die eine Liste der anzuzeigenden Bilder und einen Bilderordner mit den Bildern enthält.Flex: Brauchen Sie eingebettete SWF, um mit Projekt-Assets interagieren zu können

Das Problem, auf das ich gestoßen bin, ist, dass die eingebettete SWF-Datei die Bilder nicht laden kann. Ich kann die Vorwärts/Rückwärts-Navigationstasten sehen, aber es sind keine geladenen Bilder vorhanden. Wenn ich die SWF-Datei außerhalb des Flex-Projekts anschaue, funktioniert es einwandfrei. Liegt das daran, dass Flex es der SWF nicht erlaubt, nach draußen zu gelangen und auf andere Projekt-Assets zuzugreifen? Wie kann ich das umgehen?

Hier ist mein Code zum Einbetten der SWF:

<mx:Script> 
<![CDATA[ 
    import mx.controls.Image; 
    import mx.events.CloseEvent; 
    import mx.managers.PopUpManager; 

    [Embed(source = '../components/sampleReportViewer/photo_stack_gallery.swf')] 
    [Bindable] public var SWFClass:Class; 

    private function init():void {   
     //add the swf to the container 
     var img:Image = new Image(); 
     img.source = MovieClip(new SWFClass()); 
     contentBox.addChild(img);  

     PopUpManager.centerPopUp(this); 
    } 
]]> 

<mx:VBox id="contentBox" 
    width="600" height="450"/> 
+0

Sie führen die Debug-Flash Player wenn nicht bitte installieren Sie es, wenn Sie so irgendwelche Fehler während der Laufzeit erhalten, meine Vermutung ist eine Sicherheits-Sandbox-Verletzung, aber ohne Fehlermeldungen wird dies schwer zu diagnostizieren und zu beheben sein, für mehr auf Lademodule und Sicherheitskontexte überprüfen hier: http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html http://livedocs.adobe.com/flex/3/html/he lp.html? content = security2_01.html – shaunhusain

Antwort

1

Meine Vermutung Ihre Arbeitspfad ist nicht das Gleiche ist. Geht man von den relativen Pfaden in Ihrer URL (../) Sie eine Projektstruktur hat, die etwa wie folgt aussieht:

| 
index.html 
| 
+ swf 
| | 
| main.swf 
| 
+ components 
| 
+ xml 

Wenn das der Fall ist, wird Flash Players die übergeordneten Ordner von index.html nehmen als Ihre aktuellen Arbeitspfad, wenn Sie die HTML-Seite in den Browser laden, und alle Ihre ../ Referenzen werden die richtigen Ressourcen nicht finden, während, wenn Sie direkt mit einem Doppelklick auf die sWF starten, alles gut funktioniert.

1

Zuerst sollten Sie Bilder durch loader laden,

var loaderSmall: Loader = new Loader(); loaderSmall.load (neu URLRequest (imgArr [0] .path)); loaderSmall.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, loadThumbImage); loaderSmall.contentLoaderInfo.addEventListener (Event.COMPLETE, hideThumbImageLoader); Hier

,

Imgarr [0].

Weg

der Pfad des Bildes ist, die geladen werden soll, können Sie jetzt viel mehr Dinge tun, mit dieser Art von Setup, jetzt können Sie überprüfen, ob die Bild Laden ist oder nicht

Dies ist eine exmaple Galerie, die ich entwickeln, es ist nicht sehr perfekt, aber Bilder im Laden ist durch Lader, http://no-refresh.com/demo/PortfolioSlideshow2/

In Ihrem Problem, SHD u zuerst den Pfad überprüfen, ob das ist, richtig ist oder nicht, ist sourec des Bildes kann b nicht korrekt,

As @weltraumpirat hat geschrieben, nicht für das überprüfen auch,

ich weiß, es u nicht helfen, aber ne Art und Weise, in der Hoffnung, es hilft u smway, tc

Ankur

Verwandte Themen