加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex学习记录——控制函数的执行顺序

发布时间:2020-12-15 04:13:34 所属栏目:百科 来源:网络整理
导读:? 在调用函数的时候,有时我们希望先执行完一个函数,然后再执行另一个一个函数;或者需要先执行一个函数,并得到这个函数的执行结果,根据这个结果去执行另一个函数。一般地,我们习惯只是排放函数的位置先后关系,以为这样函数就能按照我们的意愿去执行,
? 在调用函数的时候,有时我们希望先执行完一个函数,然后再执行另一个一个函数;或者需要先执行一个函数,并得到这个函数的执行结果,根据这个结果去执行另一个函数。一般地,我们习惯只是排放函数的位置先后关系,以为这样函数就能按照我们的意愿去执行,然后结果总让人失望。暂未清楚其具体原因,只知其不可行,下面是一种解决方法:通过监听实现。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application  xmlns:mx="http://www.adobe.com/2006/mxml"    width="100%" height="100%"    pageTitle="函数执行顺序" 
    creationComplete="initApp();">
    <mx:Script>
        <![CDATA[
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
            import mx.containers.VBox;


            private var countdf:int = 0;
           
        
        private function initApp():void{
            menuService2.addEventListener(ResultEvent.RESULT,sfshow); //监听函数
            menuService2.getCountByUserId(userid);
        }
        private function sfshow(event:ResultEvent):void{
            
            countdf = event.result as int;
            
            if(countdf>0){
                
                Alert.show("countdf"+countdf);
            }
        }
        ]]>
    </mx:Script>
    <mx:RemoteObject id="menuService2" destination="menuService"/>
    <mx:VBox width="100%" height="100%" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">

    </mx:VBox>
    
</mx:Application >

?

另一种实现方式:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application  xmlns:mx="http://www.adobe.com/2006/mxml"    width="100%" height="100%"    pageTitle="函数执行顺序" 
    creationComplete="initApp();">
    <mx:Script>
        <![CDATA[
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
            import mx.containers.VBox;


            private var countdf:int = 0;
           
        
        private function initApp():void{
         menuService2.getCountByUserId(userid);
        }
        private function sfshow(event:ResultEvent):void{
            
            countdf = event.result as int;
            
            if(countdf>0){
                
                Alert.show("countdf"+countdf);
            }
        }
        ]]>
    </mx:Script>
    <mx:RemoteObject id="menuService2" destination="menuService">
<mx:method name="getCountByUserId" result="sfshow(event)"/>
    <mx:VBox width="100%" height="100%" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">

    </mx:VBox>
    
</mx:Application >

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读