论坛首页 编程语言技术论坛

flash奇怪的设计

浏览 4548 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-04-28  
flash奇怪的设计

flash本身是多线程的,但是却不提供任何方法让你操作线程。
郁闷。

flash里面远程调用都是异步的。
比如如下的一段类java代码:

       
  
String p1="a";
   String p2="b";
   
   //远程调用1
   String result1=remoteCallA(p1,p2);;
   
   //远程调用2
   String result2=remoteCallB(result1,p1);;
   
   String finalResult="a"+"b"+result2;
   
   //dosomething with finalResult;
   .....

  
  
要是用flash实现,就非是这么个流程:
  
   var p1='a';
   var p2='b';
   var cb1=function(result1);
   {
        var cb2=function(result2);
        {             
             var finalResult="a"+"b"+result2; 
             //dosomething with finalResult;  
        }
        remoteCallB(cb2,result1,p1);;
        
   }
     
   remoteCallA(cb1,p1,p2);;
        


难写不说,要是后期维护满篇都是这种代码,头一定会大的..

有什么好的方法能在flash中block一下当前运行的线程吗?
   发表时间:2006-04-28  
要是需要多个remoteCallX并且每个remoteCall的参数都与以前的某次remoteCall的结果有关的话。
这个嵌套就有得写了。。。
0 请登录后投票
   发表时间:2006-04-30  
Flash中没有任何办法block。
其实这样不是挺好的,所有的操作都必须是立即返回的,不会面对多线程的复杂性。
0 请登录后投票
   发表时间:2006-04-30  
可是,对于我上面说的情况,我觉得确确实实是复杂了很多呀。
0 请登录后投票
   发表时间:2006-04-30  
flash不是用来coding的,是用来画画的。。



察窗户用抹布,砸钉子用榔头,别反着来。
0 请登录后投票
   发表时间:2006-05-03  
可是 laszlo和flex都不是用来画画的呀。
我就是用laszlo发现rpc只能异步。然后追寻到底层的flash api发现无法解决这个问题
0 请登录后投票
   发表时间:2006-05-03  
try RemoteObject

var pc:PendingCall = xxxService.getXXX();

pc.responder = new RelayResponder(this, "getXXX_Result", "getXXX_Fault");
0 请登录后投票
   发表时间:2006-05-08  
这样能解决嵌套的回调函数问题吗?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics