-
High Scores Help
I am looking for a section of ActionScript which is simpler than the following :
user_create = SharedObject.getLocal("user");
trace(user_create.data.score1);
if (user_create.data.score1 != undefined) {
} else {
user_create.data.score1 = 0;
user_create.data.score2 = 0;
user_create.data.score3 = 0;
user_create.data.score4 = 0;
user_create.data.score5 = 0;
user_create.data.name1 = "No score";
user_create.data.name2 = "No score";
user_create.data.name3 = "No score";
user_create.data.name4 = "No score";
user_create.data.name5 = "No score";
}
var create:SharedObject = SharedObject.getLocal("scoresobject");
score1_entry = user_create.data.score1;
score2_entry = user_create.data.score2;
score3_entry = user_create.data.score3;
score4_entry = user_create.data.score4;
score5_entry = user_create.data.score5;
name1_entry = user_create.data.name1;
name2_entry = user_create.data.name2;
name3_entry = user_create.data.name3;
name4_entry = user_create.data.name4;
name5_entry = user_create.data.name5;
var scoresArray:Array = new Array();
var namesArray:Array = new Array();
scoresArray[0] = user_create.data.score1;
scoresArray[1] = user_create.data.score2;
scoresArray[2] = user_create.data.score3;
scoresArray[3] = user_create.data.score4;
scoresArray[4] = user_create.data.score5;
namesArray[0] = user_create.data.name1;
namesArray[1] = user_create.data.name2;
namesArray[2] = user_create.data.name3;
namesArray[3] = user_create.data.name4;
namesArray[4] = user_create.data.name5;
user_create.flush();
if (_root.score>score1_entry) {
for (loops=5; loops>0; loops--) {
scoresArray[loops] = scoresArray[loops-1];
namesArray[loops] = namesArray[loops-1];
}
scoresArray[0] = _root.score;
namesArray[0] = name_enter;
} else if (_root.score>score2_entry) {
for (loops=5; loops>1; loops--) {
scoresArray[loops] = scoresArray[loops-1];
namesArray[loops] = namesArray[loops-1];
}
scoresArray[1] = _root.score;
namesArray[1] = name_enter;
} else if (_root.score>score3_entry) {
for (loops=5; loops>2; loops--) {
scoresArray[loops] = scoresArray[loops-1];
namesArray[loops] = namesArray[loops-1];
}
scoresArray[2] = _root.score;
namesArray[2] = name_enter;
} else if (_root.score>score4_entry) {
for (loops=5; loops>3; loops--) {
scoresArray[loops] = scoresArray[loops-1];
namesArray[loops] = namesArray[loops-1];
}
scoresArray[3] = _root.score;
namesArray[3] = name_enter;
} else if (_root.score>score5_entry) {
scoresArray[4] = _root.score;
namesArray[4] = name_enter;
}
user_create.data.score1 = scoresArray[0];
user_create.data.score2 = scoresArray[1];
user_create.data.score3 = scoresArray[2];
user_create.data.score4 = scoresArray[3];
user_create.data.score5 = scoresArray[4];
user_create.data.name1 = namesArray[0];
user_create.data.name2 = namesArray[1];
user_create.data.name3 = namesArray[2];
user_create.data.name4 = namesArray[3];
user_create.data.name5 = namesArray[4];
score1_entry = user_create.data.score1;
score2_entry = user_create.data.score2;
score3_entry = user_create.data.score3;
score4_entry = user_create.data.score4;
score5_entry = user_create.data.score5;
name1_entry = user_create.data.name1;
name2_entry = user_create.data.name2;
name3_entry = user_create.data.name3;
name4_entry = user_create.data.name4;
name5_entry = user_create.data.name5;
Thanks for any help :)
-
Code:
//
var scoresArray:Array = new Array();
var namesArray:Array = new Array();
var user_create = SharedObject.getLocal("user");
//
if (user_create.data.score1 == undefined) {
for (i=1; i<=5; i++) {
user_create.data["score"+i] = 0;
user_create.data["name"+i] = "No score";
}
}
for (k=0; k<=4; k++) {
scoresArray[k] = user_create.data["score"+(k+1)];
namesArray[k] = user_create.data["name"+(k+1)];
this["score"+(k+1)+"_entry"] = scoresArray[k];
this["name"+(k+1)+"_entry"] = namesArray[k];
}
//
for (j=0; j<=4; j++) {
if (_root.score>scoresArray[j]) {
scoresArray.splice(j,0,_root.score);
namesArray.splice(j,0,name_enter);
scoresArray.pop();
namesArray.pop();
break;
}
}
for (k=0; k<=4; k++) {
user_create.data["score"+k] = scoresArray[k];
user_create.data["name"+k] = namesArray[k];
this["score"+(k+1)+"_entry"] = scoresArray[k];
this["name"+(k+1)+"_entry"] = namesArray[k];
}
user_create.flush();
//
-
Further help required
Thanks for your help, although there is still a small problem. When a new high score is created, and the program is closed and then reopened, the top high score seems to have disappeared.
Any ideas on how to fix this problem ?
-
Try changing to this...
Code:
for (k=0; k<=4; k++) {
user_create.data["score"+ (k+1) ] = scoresArray[k];
user_create.data["name"+ (k+1) ] = namesArray[k];
this["score"+(k+1)+"_entry"] = scoresArray[k];
this["name"+(k+1)+"_entry"] = namesArray[k];
}