loadin Do…

一条只能往前走的路,叫时光.

首页 联系 订阅 管理

一个通过本地存储过程实现的,使用xml加flex组件生成:

cookie类存储:

 

LocalShare.as
package ActionScript
{
    import flash.net.SharedObject;
    public class LocalShare
    {    
        private var so:SharedObject;
        
        public function LocalShare(file_name:String = "FlashCookie"):void {
            so = SharedObject.getLocal(file_name);
        }
        
        public function flushDate(obj:*):void {
            so.data.saveInfo = obj;
            so.flush();
        }
        public function getData():* {
            //trace(so.data.saveInfo); //undefined
            return so.data.saveInfo;
        }
        public function clear():void {   
            so.clear();   
        }  
    }
}

 

删除XML中指定索引号的节点:

 

code
package ActionScript
{
    public class Tool
    {    
        /**
         * 删除xmlNode下指定索引处的节点
         */
        public static function deleteByIndex(xmlNode:XML,index:Number):XML{
                var newStr:String='';
                newStr+='<'+xmlNode.localName();
                for each (var att:XML in xmlNode.attributes()){
                    newStr+=' '+att.localName()+'="'+att.toString()+'"';
                }
                newStr+='>';
                var i:Number=0;
                for each(var node:XML in xmlNode.children()){
                    if(i!=index)
                        newStr+=node.toXMLString();
                    i++;
                }
                newStr+='</'+xmlNode.localName()+'/>';
                return new XML(newStr);
        }
    }
}
 

 程序文件:(mxml)

Title <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="initApp()">
    <mx:Script>
        <![CDATA[
            
            import ActionScript.LocalShare;
            import ActionScript.Tool;
            import mx.controls.Alert;
            
            [Bindable]
            private var selectedNode:XML;
            [Bindable]
            private var treeData:XML = <node label="friendsInfo"></node>;
            
            private var share:LocalShare;            
            
            private function initApp():void {
                share = new LocalShare();
                //share.clear();
                if(share.getData()) {
                    treeData = share.getData() as XML;
                }
            }
            private function treeChanged(event:Event):void {
                selectedNode=Tree(event.target).selectedItem as XML;
            }
            
            private function addTreeleaf():void {
                if(_name.text.length && _mp.text.length && _email.text.length && _address.text.length){
                    addNode(_name.text,_mp.text,_email.text,_address.text,_info.text);
                    _name.text = _mp.text = _email.text = _address.text = _info.text = "";
                }
                else {
                    Alert.show("some items is no input...","Error",4,this,null,null,4);
                }
            }
             /** 添加并存储到本地*/
            private function addNode(_name:String, _mp:String, _email:String, _address:String, _info:String):void {
                for(var k:String in treeData.node) {
                    if(treeData.node[k].@label.toString() == _name) {
                        treeData.node[k].node[0].@label = _mp;
                        treeData.node[k].node[1].@label = _email;
                        treeData.node[k].node[2].@label = _address;
                        treeData.node[k].node[3].@label = _info;
                    
                        updateLocal(treeData);
                        return;
                    }
                }
                var newxml:XML =
                <node label={_name}>
                    <node name="mp:" label={_mp}/>
                    <node name="email:" label={_email}/>            
                    <node name="location:" label={_address}/>
                    <node name="comments:" label={_info}/>
                </node>;
               
                treeData.appendChild(newxml);
                trace(treeData);
                updateLocal(treeData);
                
            }
            /** 根据索引删除指定节点*/
            private function deleteTreeleaf():void {
                var index:int;
                if(selectedNode && selectedNode.@label) {
                    //trace(selectedNode.@label);
                    for(var k:String in treeData.node) {
                        if(treeData.node[k].@label == selectedNode.@label) {
                            index = Number(k);
                            break;
                        }
                    }
                    treeData = Tool.deleteByIndex(treeData,index);
                    trace(treeData);
                    updateLocal(treeData);
                }
            }
            /** 修改指定节点节点*/
            private function editTreeleaf():void {
                var index:int;
                if(selectedNode && selectedNode.@label) {                    
                    for(var k:String in treeData.node) {
                        if(treeData.node[k].@label == selectedNode.@label) {
                            index = Number(k);
                            break;
                        }
                    }                                    
                    _name.text = treeData.node[index].@label.toString();
                    _mp.text = treeData.node[index].node[0].@label.toString();
                    _email.text = treeData.node[index].node[1].@label.toString();
                    _address.text = treeData.node[index].node[2].@label.toString();
                    _info.text = treeData.node[index].node[3].@label.toString();
                }
            }
            /** 搜索Tree*/
            private function searchTreeleaf():void {
                var hasitem:Boolean;
                for(var k:String in treeData.node) {
                    if(treeData.node[k].@label == _search.text) {
                        display_text.text = "<-----查询信息----->";
                        display_text.text += ""n";
                        display_text.text += "[nickName]  "+treeData.node[k].@label;
                        display_text.text += ""n";
                        display_text.text += "[mp]  "+treeData.node[k].node[0].@label;
                        display_text.text += ""n";
                        display_text.text += "[mail]  "+treeData.node[k].node[1].@label;
                        display_text.text += ""n";
                        display_text.text += "[location]  "+treeData.node[k].node[2].@label;
                        display_text.text += ""n";
                        display_text.text += "[comments]  "+treeData.node[k].node[3].@label;
                        
                        hasitem = true;
                        break;
                    }
                }
                if(!hasitem) {
                    Alert.show("no friends information..","message",4,this,null,null,4);
                }
            }
            /** 更新本地数据*/
            private function updateLocal(obj:*):void {
                share.clear();
                share.flushDate(obj);
            }
        ]]>
    </mx:Script>
    <mx:Style source="css/kitStyle.css"/>
    <mx:Panel title="[Friends Tree] -> sunl失去记忆" height="90%" width="100%" paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
        
        <mx:HDividedBox width="100%" height="100%">
            <mx:Tree id="myTree" width="50%" height="100%" labelField="@label"
                showRoot="false" dataProvider="{treeData}" change="treeChanged(event)"/>
            <mx:TextArea height="100%" width="50%" id="display_text"
                text="[{selectedNode.@name}]  {selectedNode.@label}"/>
            
            <mx:VDividedBox>
                <mx:VBox height="100%" width="100%">
                    <mx:Form>
                           <mx:FormItem label="nickname:">
                               <mx:TextInput id="_name" width="100%"/>
                          </mx:FormItem>
                           <mx:FormItem label="Phone:">
                               <mx:TextInput id="_mp" width="100%"/>
                          </mx:FormItem>
                          <mx:FormItem label="Email:">
                               <mx:TextInput id="_email" width="100%"/>
                          </mx:FormItem>
                          <mx:FormItem label="Address:">
                               <mx:TextInput id="_address" width="100%"/>
                          </mx:FormItem>                                  
                    </mx:Form>
                    <mx:Label text="comments:" width="100%"/>
                    <mx:TextArea id="_info" width="100%" height="100"/>                    
                </mx:VBox>
                  <mx:HBox>
                    <mx:Button id="addButton" label="add/update" click="addTreeleaf()"/>
                    <mx:Button id="delButton" label="delInfo" click="deleteTreeleaf()"/>
                    <mx:Button id="editButton" label="editInfo" click="editTreeleaf()"/>
                </mx:HBox>
                <mx:Label text="[input nickname]->search" width="100%" color="red" fontSize="12"/>
                <mx:HBox>
                    <mx:TextInput id="_search"/>
                      <mx:Button id="searchBtn" label="SearchTree" click="searchTreeleaf()"/>
                </mx:HBox>
              </mx:VDividedBox>   
              
        </mx:HDividedBox>
        
    </mx:Panel>
    
</mx:Application>

flex_record   <----- 附件(flex处女作)


posted on 2008-10-15 17:04  i'am sl  阅读(440)  评论(1)    收藏  举报