2011-02-25 87 views
2

我在flex的ActionScript類中發現了這個。在flex中聲明變量

protected::valueMin 

請讓我知道這是什麼意思。在一開始,我沒有看到任何類型的聲明。 我是flex中的新手。

回答

2

正如spash說,這句法用於命名空間。在這種情況下,它實際上用於解決編譯器問題。問題是你不能聲明一個訪問器,其中getter與setter具有不同的範圍。也就是說,你可以聲明它,但通過它的名字訪問訪問器會導致編譯錯誤。

考慮以下幾點:

private var _name:String; 

[Bindable(event="nameChange")] 
public function get name():String { 
    return _name; 
} 

private function set name(value:String):void { 
    if (value !== _name) { 
    _name = value; 
    dispatchEvent(new Event("nameChange")); 
    } 
} 

如果現在嘗試訪問「名稱」屬性來獲取或設置,這將導致編譯錯誤:

name = "John Doe"; 

但是,如果您指定代碼將編譯的範圍。

private::name = "John Doe"; 
+1

現在不應該使用'name =「Jon Skeet」''嗎? ;-) – splash 2011-02-25 22:42:39

+0

呵呵,的確如此。我發誓我從現在開始做。 – 2011-02-26 05:57:02

+0

:)謝謝噸飛濺和Christophe。 – 2011-03-03 05:01:02

1

它應該是對受保護的類成員valueMin的引用。

You can reference namespaces with the use namespace directive or you can qualify the name with the namespace using the name qualifier (::) punctuator.

還看到:Namespaces