Flashhilfe.de - Flash Community

AddChildAt Range Error [Flash 9]

 


AntwortenRegistrieren Seite1  

zidaninho#1
Benutzerbild von zidaninho
Beiträge: 61
Registriert: Jan 2009

27.02.2009, 16:42

Hallo zusammen,

habe ein Panel und in dieses Panel möchte ich jeweils ein anderes Panel mit einer Instanz eines Charts legen. Das Chart ist immer dasselbe ,nur die Daten sind immer anders (x- und y-Werte etc.)

Bekomme, wenn ich die Charts aus meiner Liste ansprechen will einen Fehler (Range Error 2006)

hier Auszüge aus dem Code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?
private function addChart83():void {
               
               
myChart1 = new LineChart();
               
myChart1.percentHeight 100;
               
myChart1.percentWidth 100;
               
myChart1.showDataTips true;
                               
               
myChart1.dataProvider sm83;
                           
                var 
vAxis:LinearAxis = new LinearAxis();
                               
               
vAxis.minimum 86;
               
vAxis.maximum 95;
               
vAxis.interval 1;
         
               
myChart1.verticalAxis vAxis;
                             
                var 
hAxis:LinearAxis = new LinearAxis();
               
hAxis.title "Timestamp";
               
hAxis.maximum 425000;
               
myChart1.horizontalAxis hAxis;
               
                       
               
// Add the series.
               
var mySeries:Array=new Array();
               
series11 = new LineSeries();
               
series11.xField="zeit";
               
series11.yField="wert";
               
series11.setStyle("form""step");
               
series11.setStyle("stroke"BLACK_STROKE); 
   
               
mySeries.push(series11);
               
               
               
               
myChart1.series mySeries;
       
               
cpanel.height 120;
               
cpanel.percentWidth 100;
           
               
cpanel.addChildAt(myChart10); 
               
               
panel01.addChild(cpanel);
           
               
chartDisplayed true;
               
                    }
           
           
            private function 
addChart1():void {
               
                var 
aStroke:Stroke = new Stroke (0xFFFFFF,0);
                var 
pWidth:Number;
                 var 
curNum1:Number this.numChildren 1;
                 
               
               
myChart1 = new LineChart();
               
myChart1.percentHeight 100;
               
myChart1.percentWidth 100;
               
myChart1.showDataTips true;
               
myChart1.dataProvider sm1;
                           
                var 
vAxis:LinearAxis = new LinearAxis();
                               
               
vAxis.minimum 0;
               
vAxis.maximum 0;
               
vAxis.interval =0;
               
               
myChart1.verticalAxis vAxis;
                               
                var 
hAxis:LinearAxis = new LinearAxis();
               
hAxis.title "Timestamp";
               
hAxis.minimum 0;
               
hAxis.maximum 425000;
               
myChart1.horizontalAxis hAxis;
               
                       
               
// Add the series.
               
var mySeries:Array=new Array();
               
series11 = new LineSeries();
               
series11.xField="zeit";
               
series11.yField="wert";
               
series11.setStyle("form""step");
               
               
mySeries.push(series11);
               
               
               
               
myChart1.series mySeries;
       
           
               
cpanel.height 120;
               
cpanel.percentWidth 100;
           
               
cpanel.addChildAt(myChart10); 
               
               
panel01.addChild(cpanel);
            }
               
                private function 
addChart47():void {
               
                var 
aStroke:Stroke = new Stroke (0xFFFFFF,0);
                var 
pWidth:Number;
                 var 
curNum1:Number this.numChildren 1;
                 
           
               
myChart1 = new LineChart();
               
myChart1.percentHeight 120;
               
myChart1.percentWidth 100;
               
myChart1.showDataTips true;
               
               
myChart1.dataProvider stateMachine47;
                           
                var 
vAxis:LinearAxis = new LinearAxis();
                               
               
vAxis.minimum 0;
               
vAxis.maximum 50;
               
vAxis.interval 50;
               
               
myChart1.verticalAxis vAxis;
                                       
                var 
hAxis:LinearAxis = new LinearAxis();
               
hAxis.minimum 0;
               
hAxis.maximum 425000;
               
myChart1.horizontalAxis hAxis;
               
                       
               
// Add the series.
               
var mySeries:Array=new Array();
               
series11 = new LineSeries();
               
series11.xField="zeit";
               
series11.yField="wert";
               
series11.setStyle("form""step");
               
               
series11.displayName "Transition";
               
mySeries.push(series11);
               
               
               
               
myChart1.series mySeries;
       
               
cpanel.height 120;
               
cpanel.percentWidth 100;
           
               
cpanel.addChildAt(myChart10); 
               
               
panel01.addChild(cpanel);
               
               
chartDisplayed true;
               
               
                }
?>


Dann verschwinde alle gezeichneten Charts und können auch nicht mehr geaddet werden, da sonst ein ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein bekomme.

Wo genau liegt der Fehler? Ich weiss, das es mit dem AddChild(..., 0) nicht stimmen kann.
Geändert von zidaninho am 27.02.09 um 16:42 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


omega psi#2
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

27.02.2009, 19:53

Hast du den Stracktrace für uns?
Architectures - Refactoring - Prototyping - Coding - Training
zidaninho#3
Benutzerbild von zidaninho
Beiträge: 61
Registriert: Jan 2009

Themenautor/in

27.02.2009, 20:14

Hi danke dir fürs Helfen F.,

das ist der erste Fehler:

RangeError: Error #2006: Der angegebene Index liegt außerhalb des zulässigen Bereichs.
   at flash.display::DisplayObjectContainer/addChildAt()
   at mx.core::Container/addChildAt()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2206]
   at mx.core::Container/addChild()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2140]
   at Window13/addChart1()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:730]
   at Window13/drawChart()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:2696]
   at Window13/__dataGrid_itemDoubleClick()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:2972]
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
   at mx.controls.listClasses::ListBase/mouseDoubleClickHandler()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:9053]


Und dies der zweite:

ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
   at flash.display::DisplayObjectContainer/removeChild()
   at mx.core::Container/removeChild()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2270]
   at mx.core::Container/addChildAt()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2198]
   at mx.core::Container/addChild()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2140]
   at Window13/addChart47()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:798]
   at Window13/drawChart()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:2702]
   at Window13/__dataGrid_itemDoubleClick()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:2972]
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
   at mx.controls.listClasses::ListBase/mouseDoubleClickHandler()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:9053]


Des weiteren meine Frage, wenn ich mein Panel in dem das Diagramm erscheint den Close Button drücke, dann wird das Child zwar aus der View entfernt, ein erneuter Klick auf die Auswahlliste fügt das ausgewählte Diagramm aber unter das "geschlossene" ein, was ja so nicht gewünscht ist...
Also immer nur ein Diagramm pro schliessbarem Panel wollte ich.

Da stimmt was mit der Entfernung aus der DisplayList nicht oder?
omega psi#4
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

28.02.2009, 09:39

at Window13/addChart1()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:730]

und

at Window13/addChart47()[C:\Uni\Diplomarbeit\Prototyp\Flex\Window\src\Window13.mxml:798]

Da passiert was schlimmes.
Architectures - Refactoring - Prototyping - Coding - Training
Geändert von omega psi am 28.02.09 um 09:39 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


zidaninho#5
Benutzerbild von zidaninho
Beiträge: 61
Registriert: Jan 2009

Themenautor/in

28.02.2009, 10:04

Hmmm.

das sind genau die Zeilen:

PHP:
1
2
3
4
<?
cpanel
.addChildAt(myChart10); 
?>


Das sind die Zeilen 96 und 146 des oben geposteten Codes.

Also das Adden des Panels inklusive Chart wird in dem Schritt dem übergeordneten Panel geaddet,  da treten Probleme auf.

Ich habe ja mehrer Funktionen, die dem Panel (Instanzname: panel01) ein Panel (mit Chart) adden.


Das ist ja immer derselbe Schritt.

Weisst du Abhilfe?
Geändert von zidaninho am 28.02.09 um 10:10 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de