• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-01-2010, 13:05   #1 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.297
[STUFF] [AS3] Flashvars Klasse

Hab irgendwann mal ne Klasse geschrieben zum "gemütlichen" auslesen von Flashvars. Kurze Rede langer Sinn, hier bitteschön.

Wie ist es zu benutzen:
ActionScript:
  1. // Als erstes muss festgelegt werden welche Flashvars
  2. // von welchem root/Film ausgelesen werden sollen:
  3.  
  4. // extract FlashVars from root
  5. Flashvars.extractFlashvars(root); // in 99% aller Fälle
  6.  
  7. // danach können die Flashvars ausgelesen werden:
  8.  
  9. // Number
  10. var num:Number = Flashvars.getNumber('myNumberFlashVar');
  11.  
  12. // int
  13. var intNum:int = Flashvars.getInt('myIntFlashVar');
  14.  
  15. // Boolean
  16. var bool:Boolean= Flashvars.getBool('myBoolFlashVar');
  17.  
  18. // String
  19. var str:String = Flashvars.getString('myStringFlashVars');

Man kann auch feststellen ob bestimme Flashvars vorhanden sind oder nicht.
ActionScript:
  1. // set some curcial Vars
  2. var varsIReallyNeed:Array = new Array('myConfigNum', 'myUserString');
  3.  
  4. try
  5. {
  6.     Flashvars.setCrucialFlashvars(varsIReallyNeed);
  7. } catch(e:Error)
  8. {
  9.     // es fehlt irgendeine variable
  10.     trace(e.message);
  11. }

Die Klasse:

ActionScript:
  1. package
  2. {
  3.     import flash.display.DisplayObject;
  4.    
  5.     /**
  6.     * @author Georg Kamptner
  7.     * Flashvars is implemented as Singleton (with the exception that
  8.     * the getInstance() Method is not public)
  9.     * Use the static API instead of Flashvars.getInstance()
  10.     */
  11.     public class Flashvars
  12.     {
  13.         private var _flash_vars:Object;
  14.         private var _crucial_flash_vars:Array;
  15.         private var _extracted:Boolean;
  16.        
  17.         private static var _instance:Flashvars;
  18.        
  19.         public function Flashvars(singleton_enforcer:SingletonEnforcer)
  20.         {
  21.             _flash_vars = null;
  22.             _crucial_flash_vars = new Array();
  23.             _extracted = false;
  24.         }
  25.        
  26.         private static function getInstance():Flashvars
  27.         {
  28.           if (_instance == null)
  29.             _instance = new Flashvars(new SingletonEnforcer());
  30.            
  31.           return _instance;
  32.         }
  33.        
  34.         private function _getFlashVar(name:String):String
  35.         {
  36.             return _getFlashVarAsString(name);
  37.         }
  38.        
  39.         private function _getFlashVarAsString(name:String):String
  40.         {
  41.             return _flash_vars[name] as String;
  42.         }
  43.        
  44.         private function _getFlashVarAsInt(name:String):int
  45.         {
  46.             if (_flash_vars[name] == undefined)
  47.                 return NaN;
  48.                
  49.             return parseInt(_flash_vars[name]);
  50.         }
  51.        
  52.         private function _getFlashVarAsNumber(name:String):Number
  53.         {
  54.             if (_flash_vars[name] == undefined)
  55.                 return NaN;
  56.  
  57.             return parseFloat(_flash_vars[name]);
  58.         }
  59.        
  60.         private function _getFlashVarAsBool(name:String):Boolean
  61.         {
  62.             if (_flash_vars[name] == undefined)
  63.                 return false;
  64.            
  65.             var var_as_string:String = _flash_vars[name] as String;
  66.            
  67.             if (var_as_string.length == 1)
  68.             {
  69.                 if (var_as_string == "0")
  70.                     return false;
  71.                 else
  72.                     return true;
  73.             }
  74.             else
  75.             {
  76.                 if (var_as_string.toLowerCase() == "false")
  77.                     return false;
  78.                 else
  79.                     return true;
  80.             }
  81.         }
  82.        
  83.         private function _extractFlashvars(root:DisplayObject):void
  84.         {
  85.             if (root == null)
  86.                 throw new Error("Flashvars extraction impossible: No root.loaderInfo available!");
  87.                
  88.             _flash_vars = root.loaderInfo.parameters;
  89.             _extracted = true;
  90.             checkCrucialVars();
  91.         }
  92.        
  93.         private function checkCrucialVars():void
  94.         {
  95.             // check only of vars havee allready been extracted
  96.             if (!_extracted)
  97.                 return;
  98.                
  99.             // check if all flash vars are available
  100.             var l:uint = _crucial_flash_vars.length;
  101.             var i:uint;
  102.             for (i = 0; i<l; ++i)
  103.             {
  104.                 if (_flash_vars[_crucial_flash_vars[i]] == undefined)
  105.                 {
  106.                     throw new Error("Flashvar: '" + _crucial_flash_vars[i] + "' missing.");
  107.                     break;
  108.                 }
  109.             }
  110.         }
  111.        
  112.         private function _setCrucialFlashvars(crucial_flash_vars:Array):void
  113.         {
  114.             _crucial_flash_vars = crucial_flash_vars;
  115.             checkCrucialVars();
  116.         }
  117.        
  118.         private function toString():String
  119.         {
  120.             var str:String = "";
  121.             str += "\n [Flashvars] \n";
  122.            
  123.             return str;
  124.         }
  125.        
  126.         // - STATIC API ------------------------------------------
  127.         public static function extractFlashvars(root:DisplayObject):void {
  128.             Flashvars.getInstance()._extractFlashvars(root);
  129.         }
  130.        
  131.         public static function getFlashVar(name:String):String {
  132.             return Flashvars.getInstance()._getFlashVar(name);
  133.         }
  134.        
  135.         public static function getString(name:String):String {
  136.             return Flashvars.getInstance()._getFlashVarAsString(name);
  137.         }
  138.        
  139.         public static function getInt(name:String):int {
  140.             return Flashvars.getInstance()._getFlashVarAsInt(name);
  141.         }
  142.        
  143.         public static function getNumber(name:String):Number {
  144.             return Flashvars.getInstance()._getFlashVarAsNumber(name);
  145.         }
  146.        
  147.         public static function getBool(name:String):Boolean {
  148.             return Flashvars.getInstance()._getFlashVarAsBool(name);
  149.         }
  150.        
  151.         public static function setCrucialFlashvars(crucial_flash_vars:Array):void {
  152.             Flashvars.getInstance()._setCrucialFlashvars(crucial_flash_vars);
  153.         }
  154.        
  155.        
  156.        
  157.     }
  158.    
  159. }
  160.  
  161. class SingletonEnforcer {}

Viel Spass damit!
Angehängte Dateien
Dateityp: zip FlashvarsClass.zip (38,5 KB, 17x aufgerufen)
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (24-01-2010 um 13:17 Uhr)
_geo_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[STUFF] Timer Klasse public Stuff 4 11-08-2007 23:30
[stuff] - Audio Klasse public Stuff 12 26-07-2007 12:37
STUFF----MovieClipAction Klasse public Stuff 4 27-03-2006 13:23
[STUFF] MySQLConnector Klasse menty Stuff 9 10-02-2005 17:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele