該類存在靜態變量或方法;而不是一個實例的類。所以你必須使用類名引用它們;不是實例名稱。你沒有在你的代碼中指定類名。
<mx:Image source="{getStyle(ClassName.SOMESTYLE)}" />
下面是一些代碼,顯示訪問定義它的同一類中的靜態常數。這個文件被命名爲StaticVariablesInSameClass_SO:
<?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" creationComplete="application1_creationCompleteHandler(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
s|Application{
someStyle : 'https://www.flextras.com/Assets/images/flextras_logo3.gif';
}
</fx:Style>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private static const SOMESTYLE:String = "someStyle";
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
trace(this.getStyle('someStyle'));
trace(this.getStyle(StaticVariablesInSameClass_SO.SOMESTYLE));
}
]]>
</fx:Script>
</s:Application>
偉大的答案!我只是補充一點,那個常量應該是公開的 –
實際上有很多意義,但是,在編譯時出現錯誤:[module] SetupUtil.as:訪問未定義的屬性ClassName。這是否會發生,因爲我想定義與我的mxml相同的類中的常量? –
您必須將ClassName替換爲類的實際名稱。正如@TimofeiDavydik所說的那樣;我會確保靜態變量是公開的;不是私人的 – JeffryHouser