Flashhilfe.de - Flash Community

Variablendefinition verursacht SecurityError?!? [AIR 2]

 


AntwortenRegistrieren Seite1  

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

03.08.2012, 10:51

Hallo,

hab schon wieder einen SecurityError, den ich mir nicht erklären kann. Es gibt eine Hauptdatei, die eine SWF aus dem ApplicationStorageDirectory nachlädt. In dieser externen SWF gibt es eine Funktion, die einen Lückentext generiert. Darin werden 5 Variablen definiert:

ActionScript:
1
2
3
4
5
6
7
8
public function setupLtext(evt:LtextEvent):void {
     var ltextController:ContainerController;
     var ltextTextFlow:TextFlow;
     var ltextP:ParagraphElement;
     var ltextSE:SpanElement; // für Text
   var ltextIGR:InlineGraphicElement;  // für Lücke
   // [...weiterer Code...]
}


ergibt folgende Fehlermeldung:
*** Security Sandbox Violation ***
SecurityDomain 'file:///C:/Users/[Benutzername]/AppData/Roaming/[Projektname]/Local Store/start.swf' tried to access incompatible context 'app:/Main.swf'

Kommentiere ich die Variablendefinition aus, ist alles ok (aber dafür funktioniert natürlich auch der Lückentext nicht mehr).

Die externe SWF wird wie folgt geladen:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
private function loadStartdatei():void {
     var urlstring:String = appStoreDir.nativePath + "\\start.swf";
     swfLoader = new Loader();
     swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, showStartdatei);
     swfLoader.load(new URLRequest(urlstring));   
}
private function showStartdatei(evt:Event):void {
     swfLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, showStartdatei);
     this.start_swf = MovieClip(this.swfLoader.content);
     this.start_swf.x = 0;
     this.start_swf.y = 0;
     this.addChild(this.start_swf);
}


Und in der externen SWF:
ActionScript:
1
2
3
4
5
6
7
8
public function Start():void {
     programmstart = true;
     this.addEventListener(Event.ADDED_TO_STAGE, swfReady);
}
private function swfReady(evt:Event):void {
     this.removeEventListener(Event.ADDED_TO_STAGE, swfReady);
     createMainMenu();
}


In der externen SWF wird der Content also erst aufgebaut, nachdem die Datei der Stage hinzugefügt wurde.

Jemand eine Idee?

Kerstin
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Schlagwörter: SecurityError
Geändert von Kerstin77 am 03.08.12 um 10:52 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#2
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

03.08.2012, 19:32

Das liegt sicherlich am LoaderContext. Gibt dort mal die aktuelle applicationDomain an (ApplicationDomain.currentDomain).

So in der Richtung. Kann sein das sich etwas an den Einstellungen geändert hat:

ActionScript:
1
2
3
4
5
var loadContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);

swfLoader = new Loader();
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, showStartdatei);
swfLoader.load(new URLRequest(urlstring), loadContext);


Grüße,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Kerstin77#3
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

Themenautor/in

06.08.2012, 11:50

Danke für die Antwort, aber leider ändert das nichts.
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Sebastian#4
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

06.08.2012, 17:23

Ich denke schon das es daran liegt. Kann sein das Du die Klassen in deine Main importieren musst damit sie nicht kollidieren. Ich kenne den Fehler daher das man die gleiche Klassendefinition in beide Applikationen importiert hat. Wenn das Modul in sich geschlossen ist und nicht auf die externen Klassen zugreifen soll, ist currentDomain nicht richtig.

Ich würde in der Richtung weiter recherchieren. Denke schon das es damit zu tun hat.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Werbung
Beiträge: 0
Registriert: Feb 2016


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

Themenautor/in

17.10.2012, 16:17

So, in der Zwischenzeit habe ich nun den Lückentext so umprogrammiert, daß ich diese Variablentypen nicht mehr benötige. Falls mir trotzdem jemand noch diesen mysteriösen Security-Error erklären kann, gerne per PM.
Wer Rechtschreibfehler findet, darf sie gerne behalten.

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