Это похоже на вопрос новичков, поэтому прикрепите себя.Как ссылаться на элементы Flex, добавленные во время выполнения?
Мне сложно получить ссылку на элементы, добавленные после компиляции, используя свойство id. Я видел несколько тем форума, предлагающих, что это невозможно, и что получение ссылки на добавленные элементы таким образом сложнее, но не просто точно, что это за трюк. Этот код очень забавляет: Error: uncaught exception: Error calling method on NPObject! [plugin exception: "ReferenceError: Error #1069: Property canvas_tentpoles_0 not found on SGraph and there is no default value."]
.
public function calledAfterInit(graph_values:Array):void
{
for(var i:int=0; i<graph_values.length; i++) {
var cdc:CartesianDataCanvas = new CartesianDataCanvas();
cdc.id = "canvas_tentpoles_"+i;
cdc.includeInRanges = false;
cdc.visible = false;
Areachart.annotationElements = Areachart.annotationElements.concat(cdc);
// [...do stuff...]
}
// [...later...]
for(var j:int=0; j<graph_values.length; j++) {
drawOnCanvas(j);
}
}
private function drawOnCanvas(index:int):void {
var canvas:CartesianDataCanvas = this["canvas_tentpoles_"+index]; // ← Error likely from here
canvas.lineStyle(1);
canvas.moveTo(10,10);
canvas.lineTo(10,20);
// [...etc...]
}
Я хотел бы, чтобы не был предварительно добавить больше <mx:CartesianDataCanvas>
тегов чем я нуждаюсь, и мне нужно только столько, сколько graph_values.length
. Может кто-нибудь любезно показать мне, где я ошибаюсь?