package com.ds.comm{ import flash.utils.Dictionary; import flash.utils.Proxy; import flash.utils.flash_proxy; public dynamic class MyDictionary extends Proxy{ private var $dic : Dictionary; /** * @param $weakKeys : Boolean 是不是弱引用 * @author Ainy * */ public function MyDictionary( $weakKeys : Boolean = false){ super(); this.$dic = new Dictionary($weakKeys); } flash_proxy override function setProperty(name:*, value:*):void{ if(name && value){ $dic[name] = value; } } flash_proxy override function deleteProperty(name:*):Boolean{ if($dic.hasOwnProperty(name)){ $dic[name] = null; delete $dic[name]; return true; }else{ return false; } } flash_proxy override function getProperty(name:*):*{ if($dic.hasOwnProperty(name)){ return $dic[name]; }else{ return null; } } public function getKeyByValue(value : * ) : *{ for(var $key : * in this.$dic){ if($dic[$key] == value){ return $key; } } return null; } } }
应用:
package { import com.ds.comm.MyDictionary; import flash.display.Sprite; import flash.text.TextField; public class myTest extends Sprite { private var myDictionary : MyDictionary; public var $myText : TextField; public function myTest(){ // $myText = new TextField(); // $myText.text = "myTest"; // addChild($myText); // var bb : Boolean = this.hasOwnProperty("$myText"); // trace(bb); // var $myttt : String = String.fromCharCode(10); // $myText.text = $myttt; myDictionary = new MyDictionary(); myDictionary["Aony"] = "Ainy"; callBack.apply(null,["KK"]); } private function callBack($c : String = "CC") : void{ trace($c); trace(myDictionary.getKeyByValue("Ainy")); } } }
转载于:https://blog.51cto.com/aonaufly/1298193