Ciao a tutti
Sto scrivendo una classe Singleton in actionscript 3.0 da utilizzare poi in Flex 3 per recuperare dei valori di variabili memorizzate in un Object.
La classe in questione è così scritta
Ora vorrei da un applicazione in Flex (mxml) richiamare dei valori di alcune variabili memorizzate nel dataList.codice:package { //Classe Singleton per caricare il file di configurazione config.txt import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; public class ConfigUrl { [Bindable] public var dataList:Object = new Object(); private var variableTXT:HTTPService = new HTTPService(); private static var _instance:ConfigUrl; private static var _allowInstantiation:Boolean; public function ConfigUrl(){ if (!_allowInstantiation) { throw new Error("Error: Instantiation failed: Use ConfigUrl.getInstance() instead of new."); } } public static function getInstance():ConfigUrl{ if (_instance == null) { _allowInstantiation = true; _instance = new ConfigUrl(); _allowInstantiation = false; } return _instance; } public function load():void{ variableTXT.url = "assets/config.txt"; variableTXT.resultFormat = "text"; variableTXT.addEventListener(ResultEvent.RESULT, handleLoad); variableTXT.addEventListener(FaultEvent.FAULT, handleFault); variableTXT.send(); } private function handleFault(e:FaultEvent):void{ Alert.show('An error occured while trying to load','ERROR MESSAGE'); } private function handleLoad(e:ResultEvent):void { var variableData:String = e.target.lastResult; var bookDataArray:Array = variableData.split("\n"); var dataList:Object = {}; // cariabile che conta le righe dal file config.txt var dataA:Array; // per ogni riga viene fatto uno split for (var i:int = 0; i < bookDataArray.length; i++) { dataA = bookDataArray[i].split("="); //var stringID:String = dataA[0]; dataList[dataA[0]] = dataA[1]; trace("dataList."+[dataA[0]]+" = ", dataList[dataA[0]]); trace(dataList[dataA[0]); } } } }
La sintassi che uso in flex è:
dove labelID1 è l'id di un componente label sul mio stage.codice:<mx:Script> <![CDATA[ import mx.events.FlexEvent; public function init(e:FlexEvent):void{ labelID1.text = "Il valore è: " + ConfigUrl.getInstance().dataList.VARIABILE1; } ]]> </mx:Script>
VARIABILE1 è una variabile memorizzata nel mio object dataList ma aimè mi restituisce un valore undefined.
Sto creando questa classe per leggere delle variabili da un file di testo config.txt fatto così:
codice:VARIABILE1 = valore1 VARIABILE2 = valore2 VARIABILE3 = valore3

Rispondi quotando
