Flashhilfe.de - Flash Community

Geladene SWF kann nicht auf eigene Bibliothek zugreifen [Flash 11]

 


AntwortenRegistrieren Seite1  

soffy1986#1
Benutzerbild von soffy1986
Beiträge: 3
Registriert: Oct 2011

25.10.2011, 00:25

Hallo. Nach langem Suchen hab ich keine Lösung gefunden.
Hier meine Situation:
Ich Lade eine SWF (content.swf) in meinen Haupt-SWF (loader.swf)
Nun soll die nachgeladene SWF auf Objekte in ihrer eigenen Bibliothek zugreifen.
z.B.:
ActionScript:
1var test:MovieClip=new testobjekt()

Das funktioniert aber nicht so einfach.
Der Code wird innerhalb der content.swf ausgeführt und soll auch die Bibliothek von content.swf zugreifen.
Der Compiler warnt aber mit "Zugriff auf eine möglicherweise undefinierte Methode"
Die applicationdomain in dem Loader scheint schon mal die richtige Richtung zu sein, aber ich weiß nicht genau wie ich das mache und ob das mein Problem löst.
Ich bin dankbar für jede Hilfe oder Denkanstoß.
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

25.10.2011, 10:56

Hallo,

Problem: du kannst nciht auf etwas zu greifen, was nciht da ist. Deine Flash-Datein sind ja eg dafür ausgelegt alleine zu stehen und somit ist es klar, dass wenn du auf Methoden in einer anderen Flash.Datei zu greifen willst es einen Fehler gibt, da Flash ja zum Zeitpunkt des erstellens nciht weiß, dass es vielleicht noch eine andere Datei geben wird.
Am besten wird es sein, du importierst die Bibliotheken in die Datei in der sie auch gebraucht werden, sodass das kompilieren auch klappt, oder du rufst einfache eine Methode in der Datei auf, in der auch die Methoden liegen.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
soffy1986#3
Benutzerbild von soffy1986
Beiträge: 3
Registriert: Oct 2011

Themenautor/in

27.10.2011, 11:43

Hier meine Struktur:
start -> loader.swf -> enthält einen loader -> läd content.swf -> content.swf findet eigene Bibliothek nicht
Das was du beschrieben hast will ich ja genau erreichen.
Jede swf-Datei soll für sich sein. Es scheint aber so als würde Flash die nachgeladene content.swf nicht nur ab gekapselt auf der Bühne zu positionieren wie beispielsweise ein Bild, sonden als ob Flash den Code der content.swf direkt in den der haupt-swf integrieren würde.
Wenn ich die content.swf für sich ausführe funktioniert alles problemlos. Erst wenn ich die content.swf durch einen anderen Film nachlade verursachen sämtliche Bibliothekszugriffe Fehler.

Hintergrund der ganzen Sache ist ja das ich einen Hauptfilm (loader.swf) habe der nur das Minimalste an Script und Grafiken enthält um einen Ladebalken anzuzeigen. Der eigentliche Inhalt (content.swf) soll nachgeladen werden.
Basti2010#4
Benutzerbild von Basti2010
Beiträge: 43
Registriert: Jun 2011

27.10.2011, 17:01

Hallo soffy1986,

ich habe einmal ein ähnliches Problem gehabt. Ich konnte es dadurch lösen, dass ich in die Bibliothek der loader.swf alle Symbole aus der content.swf importiert haben habe. Das Problem tauchte bei mir im Zusammenhang mit Flash-Komponenten auf, die sich in der content.swf befanden.

Grüße
Basti
Werbung
Beiträge: 0
Registriert: Feb 2016


soffy1986#5
Benutzerbild von soffy1986
Beiträge: 3
Registriert: Oct 2011

Themenautor/in

29.10.2011, 17:01

@Basti
Das würde zwar auch bei mir funktionieren aber wenn ich alles in die haupt-swf packe verfehlt das ja den eigentlichen zweck und ich könnte mir das nachladen sparen.
Interessant ist das keine Antwort auf die ApplicationDomain eingegangen ist.
Hat damit noch keiner was zu tun gehabt oder ist das n ganz falscher Ansatz meinerseits?
Basti2010#6
Benutzerbild von Basti2010
Beiträge: 43
Registriert: Jun 2011

30.10.2011, 14:40

Bei mir tauchte das Problem bisher nur im Zusammenhang mit Komponenten auf. Du könntest ja zu Testzwecken einmal nur die Objekte, bei denen das Problem auftaucht, in die Hauptdatei einbinden. Wäre noch meine einzige Idee.
Basti
vindel#7
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

30.10.2011, 19:41

Du kannst doch alle deine Klassen in Bild 2 deines Loaders einbinden - somit wird das erste Bild so wie aktuell geladen und in Bild 2 dann alles andere (Geht unter "Einstellungen für Veröffentlichung" -> "Flash" und dann bei Skrit unter Einstellungen!)
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Basti2010#8
Benutzerbild von Basti2010
Beiträge: 43
Registriert: Jun 2011

05.11.2011, 00:45

Jetzt hatte ich ebenfalls mit diesem Problem zu tun.

Es lag diesmal daran, dass ich mit einem Objekt innerhalb der eingebundenen Datei auf das stage-Objekt zugegriffen habe. Das scheint mit eingebunenen Dateien nicht möglich zu sein. Weil Flash hier keine vernünftige Fehlermeldungen gibt (hat vielleicht mit der Sicherheit zu tun), kann man sich an diesem Problem schön aufhalten.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de