flex有个功能是根据一个字符串字符串是比例的信息如果有多个比例的时候弹框让用户选择选择之后赋值。现在的代码可以弹框但是弹框后没有任何信息点确定报错。下面附上代码请帮忙找一下问题并给出修改后的代码。frmZfblSelectmxml文件的代码如下:mxTitleWindow xmlnsmx=httpwwwadobecom2006mxml layout=vertical width=400 h
在zfblSelectCloseHandler方法中,定义了一个zfblData变量作为字符串类型,但是在后面的代码中却将其赋值为一个对象类型,导致在弹框中无法正确显示数据。需要将zfblData的类型从字符串改为对象类型,代码如下:
private function zfblSelectCloseHandler():void{ var zfblData:Object = {}; var zfbls:Array = zfblStr.split(","); var count:int = 0; var zfblEach:Number = 0; for(var k:int = 0; k < zfbls.length - 1; k++){ if(!zfblData.hasOwnProperty(k.toString()) && (zfbls[k].indexOf(xzbz) != -1 && (zfbls[k].indexOf(rqlb) != -1 || zfbls[k].indexOf(rqlbZGJM) != -1))){ count++; zfblData[k.toString()] = zfbls[k]; zfblEach = Number(zfbls[k].split("#v")[0]); } } if(count == 1){ zfbl = zfblEach; }else if(count >= 2){ var zfblSelect:frmZfblSelect = new frmZfblSelect(); zfblSelect.Bm = yyxmbm; zfblSelect.Mc = yyxmmc; zfblSelect.zfblData = zfblData; zfblSelect.addEventListener(Event.CLOSE, zfblSelectCloseHandler); PopUpManager.addPopUp(zfblSelect, this, true); PopUpManager.centerPopUp(zfblSelect); }else{ var resultString:String = zfbls[0]; var zfblStr:String = resultString.split("#v")[0]; zfbl = Number(zfblStr); } }
另外,zfblSelectCloseHandler方法中的参数e:Event没有使用,可以去掉。同时,在frmZfblSelect中,需要修改btnOk_clickHandler方法中的dispatchEvent方法为:
dispatchEvent(new Event(Event.CLOSE, true));
这样才能正确传递事件给父级组件
原文地址: https://www.cveoy.top/t/topic/hwEp 著作权归作者所有。请勿转载和采集!