2011-11-23 41 views
0

如何在頁面加載的Flex/Flash Builder中執行此操作?Flex從標籤中獲取文本值並將其放入var中

這是我的標籤:

<s:Label id="hallo" text="hallo"/> 

而且這是我試圖讓文本值轉換成VAR:

public var halloText:String = hallo.text; 

但是當我運行此我得到一個動作錯誤#1009 :無法訪問屬性或方法的空...

回答

1

這聽起來像你試圖訪問.text屬性之前,它已被實例化。

假設你有一個MXML文件看起來像:

<?xml version="1.0" encoding="utf-8"?> 
    <test:LabelTester pageTitle="Label Test" 
    xmlns:test=".*" 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark"> 

     <s:Label id="hallo" text="hallo"/> 

    </test:LabelTester> 

和應用類稱爲LabelTester,看起來是這樣的:

public class LabelTester extends Application { 
    public var hallo:Label; 
    function LabelTester() { 
     this.traceText(); 
    } 

    private function traceText():void { 
     var halloText:String = this.hallo.text; 
     trace(halloText); 
    } 
} 

然後你會得到你所描述的運行時錯誤。

但隨後的構造函數改成這樣:

function LabelTester() { 
// this.traceText(); 
    this.addEventListener(FlexEvent.CREATION_COMPLETE, this.handleCreation); 
} 

,並添加:

private function handleCreation(creation:FlexEvent):void { this.traceText(); } 

,如果你在調試器中運行它,你應該看到在控制檯窗口中正確的值。

+0

謝謝!我發現這種情況下已經有了解決方法,但這對於未來的使用來說非常方便。 –

+0

很高興知道!出於好奇,你的解決方法是什麼? –

+0

我決定從其他地方首先獲得var。但我想提出我以前的問題。我在這裏發佈的問題:http://stackoverflow.com/questions/8421862/flex-update-a-labels-text-wich-is-a-variable感謝您的幫助! –

相關問題