У меня есть глобальная переменная csId типа строки. В приведенном ниже коде функции drawChart () в цикле for переменная csID должна быть установлена равной «1» с помощью modelLocator, когда i = 0, а csId должна быть установлена на «2» с помощью modelLocator, когда i = 1 (с учетом lengh = 2).
Оповещение в drawchart () (для csId), по-видимому, печатает правильные значения csid (как 1, так и 2), но в dataFunction () columnSeries_labelFunc я всегда получаю значение csId Alert как 2, а не как 1' .
Пожалуйста, найдите код ниже:
функция drawchart () ::
public function drawChart():void
{
var cs:ColumnSeries= new ColumnSeries();
var lenght:Number=AppModelLocator.getInstance().ctsModel.productSummary.getItemAt(0).collMgmtOfcList.length;
myChart.series = [cs];
var tempObj:Object;
for(csLoop=0;csLoop<lenght;csLoop++)
{
cs = new ColumnSeries();
this.csId= new String(String(AppModelLocator.getInstance().ctsModel.productSummary.getItemAt(0).collMgmtOfcList[csLoop]));
Alert.show("csId="+this.csId);
cs.id=this.csId;
cs.displayName = 'Exposure';
cs.dataFunction=columnSeries_labelFunc;
myChart.series[csLoop] = cs;
}
Функция columnSeries_labelFunc () ::
private function columnSeries_labelFunc(series:Series, item:Object, fieldName:String):Object {
var col:Number=0;
Alert.show("value of csid in columnSeries_labelFunc="+this.csId);
if(fieldName == "yValue" && series.id==csId){
return(item.exposureUSDList[0]);
}else if(fieldName == "yValue" && series.id==csId) {
return(item.exposureUSDList[1]);
}else if(fieldName == "xValue"){
return(item.rptType);
}else
return null;
}
Пожалуйста, помогите !!!