Flashhilfe.de - Flash Community

Variablen aus dem Hauptdokument in einem NativeWindow/Popup ansprechen? [AIR 2]

 


AntwortenRegistrieren Seite1  

flex5500#1
Benutzerbild von flex5500
Beiträge: 14
Wohnort: Koblenz
Registriert: Jul 2011

15.07.2011, 13:08

Hi Leute,

ich hab folgendes Problem: Ich möchte eine Variable im NativeWindow ansprechen leider liefert der Compiler mir bei dem trace-Befehl einen Fehler (null-reference), ich weiß dass es so nicht klappen kann...mir fiel aber kein anderes Workaround ein.

So sieht der Code aus:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  xmlns:mx="library://ns.adobe.com/flex/mx">
   <fx:Script>
      <![CDATA[
         
         private var newWindow:MyNativeWindow;
         public var house:String = "wooden house";
         
         private function openNewWindow():void {
              if (newWindow != null) newWindow.close();
              newWindow = new MyNativeWindow();
              newWindow.width = 200;
              newWindow.height = 200;
 
              try
              {               
                 newWindow.open();
              }
              catch (err:Error)
              {         
                 trace(err.message);
              }
           }
         
      ]]>
   </fx:Script>   
   
   <fx:Declarations>
      <fx:Component className="MyNativeWindow">
         <mx:Window horizontalAlign="center" verticalAlign="middle" backgroundColor="blue">
            <fx:Script>
               <![CDATA[               
                  protected function button1_clickHandler(event:MouseEvent):void
                  {
                       trace(outerDocument.house);
                    }                  
               ]]>
            </fx:Script>
            <mx:Button label="Yeah" click="button1_clickHandler(event)" />
            <mx:Button label="close" click="this.close()"/>            
         </mx:Window>
      </fx:Component>   
   </fx:Declarations>   
   
   <s:VGroup horizontalCenter="0" top="10">
      <s:Button label="Open New Window" color="black" click="openNewWindow()"/>
   </s:VGroup>
</s:WindowedApplication>
Werbung
Beiträge: 0
Registriert: Feb 2016


willie33#2
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

15.07.2011, 22:56

Hier gibt es eine Lösung:
Du definierst in deiner Anwendung eine statische getter-Methode, die die Hauptanwendung zurückgibt. Über diese getter-Methode eigenschaft kannst du dann auf alle öffentlichen Elemente zugreifen.
Beispiel-Implementierung:
Zuerst musst du den WindowedApplication Tag um folgendes ergänzen:
ActionScript:
1creationComplete="applicationReady(event)"

Dann schreibst du folgendes in deinen Skript Container hinein:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
private static var _app:DeinAppKlassenName;

protected function applicationReady(event:FlexEvent):void
{
      _app = this;
}

public static function get app():DeinAppKlassenName
{
      return _app;
}

Jetzt kannst du jederzeit und überall durch den Aufruf von "DeinAppKlassenName.app" auf alle ihre öffentlichen Elemente zugreifen.
Loading comments...
flex5500#3
Benutzerbild von flex5500
Beiträge: 14
Wohnort: Koblenz
Registriert: Jul 2011

Themenautor/in

18.07.2011, 10:01

Hey vielen lieben danke für die Antwort werde es heute mal ausprobieren!

Gruß
Christian

AntwortenRegistrieren Seite1  

Schnellantwort

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

 
Ähnliche Beiträge zum Thema
Ein PC und drei Monitore [Flash CS5] 10.09.2017 - Herzenslicht
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