首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接flex和weborb?

连接flex和weborb?
EN

Stack Overflow用户
提问于 2011-11-03 15:00:46
回答 1查看 146关注 0票数 1

我是flex的新手。我有一个问题:)

我有过

代码语言:javascript
复制
[Bindable] 
          private var model:AlgorithmModel = new AlgorithmModel(); 
          private var serviceProxy:Algorithm = new Algorithm( model ); 

在MXML中

代码语言:javascript
复制
                    private function Show():void
        {

            // now model.Solve_SendResult = null
            while(i<model.Solve_SendResult.length) //
            {
                Draw(); //draw cube
            }
        }
                    private function Solve_Click():void
        {
            //request is a array
            Request[0] = 2;
            Request[1] = 2;
            Request[2] = 3;
            serviceProxy.Solve_Send(request);

            Show();

        }
<s:Button x="386" y="477" label="Solve" click="Solve_Click();"/>

当我调用serviceProxy.Solve_Send(request);的时候,请求是数组,我想在我的代码中使用model.Solve_SendResult,flex来画很多立方体,使用papervison3d,但是第一次我收到了model.Solve_SendResult = null。但当我再次点击时,一切都正常。

有没有人帮我?谢谢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-23 02:58:59

model.Solve_SendResult对象包含已执行的serviceProxy.Solve_Send(请求)方法的结果。Solve_Send将异步执行,因此,当您触发show方法时,Solve_SendResult对象可能仍然为空。

作为一种解决方案,您可以使用以下方法:

  1. 创建自定义事件

包foo {导入类型;公共类DrawEvent扩展事件{公共静态常量DATA_CHANGED:String = "dataChanged";公共函数DrawEvent(类型:String,bubbles:Boolean=false,cancelable:Boolean=false) {DrawEvent(类型,气泡,可取消);}}}算法类中的

  • 定义如下内容:

Event(name=DrawEvent.DATA_CHANGED,type="foo.DrawEvent")公共类算法扩展EventDispatcher{ //您的代码

  • 在算法类的Solve_SendHandler方法中添加以下内容

公共虚函数Solve_SendHandler(dispatchEvent:ResultEvent):void{dispatchEvent( DrawEvent(DrawEvent.DATA_CHANGED));//您的代码}在您的MXML类中创建

  • 方法,并将事件监听器添加到算法类的实例中,如下所示:

http://www.adobe.com/2006/mxml“layout="absolute”initialize="onLoad()">公共函数onLoad():void { serviceProxy.addEventListener(DrawEvent.DATA_CHANGED,onDataChanged);}私有函数onDataChanged(event:DrawEvent):void{ while(i

  • 在Solve_Click()方法中进行以下更改:

私有函数Solve_Click():Request1 { //request is a array Request = 2;request= 2;Request2 = 3;serviceProxy.Solve_Send(request);}

就是这样!因此,上面的代码基本上执行以下操作:您向服务(算法类)添加了一个侦听器,该侦听器正在侦听DrawEvent.DATA_CHANGED事件。当您的客户端接收到Solve_Send调用的结果时,将分派DrawEvent.DATA_CHANGED。因此,onDataChanged将绘制您的立方体或做您想做的任何事情:)

上面的方法是基本的,您必须知道事件在flex中是如何工作的,以及如何处理它。此处提供了更多信息:

http://livedocs.adobe.com/flex/3/html/help.html?content=createevents_3.html http://livedocs.adobe.com/flex/3/html/help.html?content=events_07.html

向你致敬,西里尔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7991248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档