2016-05-10 18 views
-3

I verwendet Resize-Handler meine app meine Komponente, um die Größe, aber es diesen Fehler zu werfen:"null Objektverweis" Fehler in Actionscript 3

TypeError: Error #1009: Cannot access a property or method of a null object reference 

Hier ist mein Code:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" 
      resize="application2_resizeHandler(event)" > 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 
      import mx.events.ResizeEvent; 

      private var employeeName:String = 'ravi'; 

      protected function application2_resizeHandler(event:ResizeEvent):void 
      { 
       mainGroup.width = stage.width - 10; 
       mainGroup.x = 5;      
      } 

     ]]> 
    </fx:Script>  
    <s:Group width="100%" height="100%"> 
     <s:VGroup id="mainGroup" > 
      <s:Label id="employeeNameLabel" text="{employeeName}" /> 
      <s:Label id="departmentLabel" /> 
     </s:VGroup> 

     <s:Button id="getData" /> 
    </s:Group> 
</s:Application> 
+1

Was ist der Fehler? –

+0

Sie sollten genauer sein und erklären, welchen Teil der Nullobjektverweis Sie nicht verstehen. – csmckelvey

Antwort

-1

Du hast Der Fehler # 1009, weil Ihr resize Ereignis vor der Erstellung Ihrer Objekte ausgelöst wird. Sie sollten also darauf warten und dass Ihre App der Bühne hinzugefügt wird, um das Stage-Objekt verwenden zu können.

Dafür, glaube ich, dass die beste Veranstaltung ist das applicationComplete Ereignis, dann können Sie ein resize Ereignis fügen Sie Ihre Komponente, um die Größe ...

So können Sie zum Beispiel wie folgt tun:

<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" 
    applicationComplete="application2_applicationCompleteHandler(event)" > 

dann

protected function application2_applicationCompleteHandler(event:FlexEvent):void 
{ 
    // if you want you can resize your component for the 1st time 
    // by calling the application2_resizeHandler() function 
    application2_resizeHandler(new ResizeEvent(ResizeEvent.RESIZE)); 

    // add the resize event listener to your app 
    event.target.addEventListener(ResizeEvent.RESIZE, application2_resizeHandler); 
} 

Hoffnung, die helfen können.

+0

Ich würde mich freuen, wenn die Person, die meinen Beitrag abgelehnt hat, mir sagen würde, was damit nicht stimmt. – akmozo