我在Flex 3.5的ItemRenderer中遇到問題。我已經看過關於這個錯誤的其他帖子,但仍然無法弄清楚。 ItemRenderer是數據提供者爲HierarchicalData的AdvancedDataGrid的一部分。我得到了ArgumentError,但跟蹤並沒有進入我的任何代碼。我已經在調試模式中經歷了很多次,但是看起來直到我的代碼運行之後它才發生。很奇怪。Flex ArgumentError:ItemRenderer中的錯誤#2025
項目渲染器有幾個不同的部分。它根據xml數據找出它應該繪製的行,然後適當地添加標籤和精靈。如果任何人都可以提供幫助,那將非常有幫助!謝謝!
這是當itemrenderer位於特定行上時被調用的方法之一。
private function addLabels(planList:ArrayCollection):void {
height = 0;
var sprite:Sprite = new Sprite();
var curX:Number = (width/planList.length);
height = 110;
for each (var plan:Plan in planList) {
var label:Label = new Label();
label.text = plan.planner.label;
label.rotationZ = 270;
label.visible = true;
label.x = curX - 7;
//Draw line divider
curX += (width/planList.length);
addChild(label);
label.move(label.x, height - 30);
//Draw divider line
sprite.graphics.lineStyle(.5, 0x000000);
sprite.graphics.moveTo(label.x - ((width/planList.length)/2) + 10.5, 0);
sprite.graphics.lineTo(label.x - ((width/planList.length)/2) + 10.5, height - 28);
//Draw meatball
sprite.graphics.beginFill(0x00FF33);
sprite.graphics.drawCircle(label.x + 10, height - 15, 10);
sprite.graphics.endFill();
}
rawChildren.addChild(sprite);
}
有被調用在不同的行其他功能,但如果我註釋掉的代碼上面的一切工作正常,所以我的猜測是,這個問題肯定是躺在那裏。謝謝您的幫助!
這裏是addLabels被調用:
override protected function createChildren():void {
removeAllChildren();
var count:int = rawChildren.numChildren;
for (var i:int = 0; i < count; i++) {
if (rawChildren.getChildAt(0).parent) {
rawChildren.removeChildAt(0);
}
}
var allPlans:ArrayCollection = new ArrayCollection();
if (_plan) {
getAllPlans(_plan, allPlans);
}
if (_name == "capability") {
}
else if (_name == "components") {
height = 130;
width = 335;
addLabels(allPlans); // <-- RIGHT HERE!
var sprite:Sprite = new Sprite();
sprite.graphics.lineStyle(.5, 0x000000);
sprite.graphics.moveTo(0, 0);
sprite.graphics.lineTo(width, 0);
sprite.graphics.moveTo(0, height - 28);
sprite.graphics.lineTo(width, height - 28);
rawChildren.addChild(sprite);
}
}
我認爲你實際上是對的。我發佈了下面的堆棧跟蹤,它肯定引用了AdvancedDataGrid。 – Craig 2010-07-09 18:04:51
仍然有點困惑...所以你認爲這個錯誤可能會發生,因爲數據網格認爲標籤和精靈應該是它的孩子,而不是項目渲染器? – Craig 2010-07-09 18:10:08
是的,類似的東西。我不知道你是怎麼調用addLabels(),但似乎你的上下文變得困惑。 – Robusto 2010-07-09 18:28:01