Flashhilfe.de - Flash Community

Security Error beim nachladen einer SWF aus dem applicationStorageDirectory [AIR 2]

 


AntwortenRegistrieren Seite1  

Kerstin77#1
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

18.07.2012, 13:28

Hallo,

habe ein Problem mit dem nachladen einer SWF aus dem applicationStorageDirectory.
Die SWF wird wie folgt geladen:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private function loadScreensaver(evt:TimerEvent):void {
     swfLoader = new Loader();
     req = new URLRequest(appStoreDir.nativePath + "\\" + "Screensaver.swf");
     // Security.allowDomain(swfLoader.contentLoaderInfo.url);
   swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, showScreensaver);
     swfLoader.load(req);
}

private function showScreensaver(evt:Event):void {
     this.sleeptimer.reset();
     this.sleeptimer.removeEventListener(TimerEvent.TIMER_COMPLETE, loadScreensaver);
     swfLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, showScreensaver);
     screensaver_swf = MovieClip(this.swfLoader.content);
     this.addChild(screensaver_swf);
     this.addEventListener(MouseEvent.CLICK, removeScreensaver);
}


Innerhalb der externen SWF habe ich folgendes Skript:

ActionScript:
1
2
3
4
5
6
7
8
9
public function Screensaver():void {
     this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
     this.alpha = 0;
}

private function onAdded(evt:Event):void {
     this.removeEventListener(Event.ADDED_TO_STAGE, onAdded);
     // weiterer Code...
}


Nun erhalte ich folgende Fehlermeldung:

SecurityError: Error #2070: Security sandbox violation: caller file:///C:/Users/[...]/AppData/Roaming/[...]/Local Store/Screensaver.swf cannot access Stage owned by app:/Main.swf.
   at flash.display::Stage/set align()
   at Screensaver/onAdded()
   at flash.display::DisplayObjectContainer/addChild()
   at Main/showScreensaver()[C:\AIR Projekte\[...]Main.as:968]

Die auskommentierte Zeile "Security.allowDomain(swfLoader.contentLoaderInfo.url);" in der Funktion loadScreensaver bringt leider auch keinen Erfolg.

Weiß jemand eine Lösung?

Kerstin
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Werbung
Beiträge: 0
Registriert: Feb 2016


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

18.07.2012, 18:46

Hast du mal unter den Einstellungen für die Veröffentlichung die Einstellung zur Sicherheit von der lokalen Wiedergabe "nur auf lokale Dateien" gestellt?
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Kerstin77#3
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

Themenautor/in

18.07.2012, 20:22

Ja, steht alles auf lokalen Zugriff.

Habe in einem anderen Forum noch gelesen, daß es mit dem Event.ADDED_TO_STAGE zusammenhängt. Nur das Event brauche ich, da sonst der nachfolgende Code zu früh ausgeführt wird und einen Null-Objekt Verweis hervorruft.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Geändert von Kerstin77 am 18.07.12 um 21:32 Uhr
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

19.07.2012, 22:27

Was ist wenn du Statt einer direktem Pfad alles erlaubst:
ActionScript:
1Security.allowDomain("*");
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


joe brockerhoff#5
Benutzerbild von joe brockerhoff
Beiträge: 98
Wohnort: meerbusch
Registriert: Dec 2002

22.07.2012, 16:02

Bei Objekten, die einen Sprite und mehr als display object anhängen, ist es gut, die Aktion abzufragen, bevor das OIbjekt auf andere Orte zugreifen kann. Objektklasse Beispiel ab:(In dem Objekt gehts erst weiter über ein public function init():void {}, wenn das Objekt auch 100% im Display ist:
PHP:
1
2
3
4
5
6
7
8
ab = new AB();
ab.addEventListener(Event.ADDED_TO_STAGE, addedX);
function addedX(ev:Event):void {
    ab.removeEventListener(Event.ADDED_TO_STAGE, addedX);
    ab.init();
}
this.addChild(ab);
world wide wars -> world wide wisdom
www.brockerhoff.com
Kerstin77#6
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

Themenautor/in

25.07.2012, 11:59

Besten Dank, das hat geholfen! Ich hatte das Event ADDED_TO_STAGE in der externen swf, aber anscheinend muss es wohl doch in die Hauptdatei.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Geändert von Kerstin77 am 25.07.12 um 11:59 Uhr

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