Flashhilfe.de - Flash Community

Bekomme falsche Typenbezeichnung [Flash 10]

 


AntwortenRegistrieren Seite1  

Olli_K#1
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

13.01.2011, 13:53

Bin ich blöd? Kann sich Flash mal entscheiden? Warum plötzlich NaN?
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
var poolArr:Array = new Array();
var dreiZufallszahlen:Array = new Array();
for (var i = 1; i<10; i++) {
     poolArr.push(i);
}
trace(typeof (poolArr[0]));//ergibt number
for (var i = 0; i<2; i++) {
     dreiZufallszahlen.push(Number(poolArr.splice(random(poolArr.length), 1)));
}
trace(typeof (dreiZufallszahlen[0]));//ergibt number
trace(dreiZufallszahlen[0]);// ergibt NaN
LG | Olli

pixbox
derFloh#2
Benutzerbild von derFloh
Beiträge: 992
Wohnort: ..::LAGE::..
Registriert: Apr 2006

13.01.2011, 14:09

hey,

liegt daran, dass die methode splice ein array zurückgibt.
function splice(startIndex:int, deleteCount:uint, ... values):Array

...also einfach nicht als Number casten, dann klappts :)
ActionScript:
1
2
3
4
for( var i = 0; i < 2; i++ )
{
       dreiZufallszahlen.push( poolArr.splice( random( poolArr.length ), 1 ) );
}


gruß
 flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
Olli_K#3
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

13.01.2011, 14:13

ja, aber dann ergibt Zeile 10 'object' - ich brauche aber eine Zahl
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
var poolArr:Array = new Array();
var dreiZufallszahlen:Array = new Array();
for (var i = 1; i<10; i++) {
     poolArr.push(i);
}
trace(typeof (poolArr[0]));//ergibt number
for (var i = 0; i<2; i++) {
     dreiZufallszahlen.push(poolArr.splice(random(poolArr.length), 1));
}
trace(typeof (dreiZufallszahlen[0]));//ergibt object
trace(dreiZufallszahlen[0]); // zeigt eine Ziffer an, lässt sich ber nicht als Zahl verwenden
LG | Olli

pixbox
Geändert von Olli_K am 13.01.11 um 14:20 Uhr
derFloh#4
Benutzerbild von derFloh
Beiträge: 992
Wohnort: ..::LAGE::..
Registriert: Apr 2006

13.01.2011, 14:37

tjoa,
stimmt schon. wie gesagt, du push ein array in dein array.
dann probiert mal so:
dreiZufallszahlen.push( ( poolArr.splice( random( poolArr.length ), 1 )[0] ) );
(nicht schön, aber läuft) :)

gruß
 flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
Olli_K#5
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

13.01.2011, 14:50

Ja, läuft, aber warum, kapier ich nicht. Genau wie das Phänomen aus meiner Ursprungsfrage: Zeilen 10 und 11 wiedersprechen sich.
LG | Olli

pixbox
Geändert von Olli_K am 13.01.11 um 14:58 Uhr
RustyCake#6
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

13.01.2011, 14:58

Da Du ja ein Array gepusht bekommst, kannst Du mußt Du die auch tiefer tracen.
Bsp.
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var poolArr:Array = new Array ();
var dreiZufallszahlen:Array = new Array ();
for (var i:Number = 1; i < 10; i++)
{
     poolArr[i] = i;
}
for (var i = 0; i < 2; i++)
{
     dreiZufallszahlen.push (poolArr.splice (Math.random () * poolArr.length, 1));
}
trace (typeof (dreiZufallszahlen[0]));//ergibt object
trace (typeof (dreiZufallszahlen[1]));//ergibt object
trace (typeof (dreiZufallszahlen[0][0]));//ergibt number
trace (typeof (dreiZufallszahlen[1][0]));//ergibt number
trace (dreiZufallszahlen[0]);// ergibt 4
trace (dreiZufallszahlen[1]);// ergibt 5
trace (dreiZufallszahlen[0][0]);// ergibt 4
trace (dreiZufallszahlen[1][0]);// ergibt 5
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Olli_K#7
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

13.01.2011, 15:03

Okay, da geht die Lampe an, danke an euch beide!
LG | Olli

pixbox

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   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de