A Flash Developer Resource Site

Results 1 to 4 of 4

Thread: High Scores Help

  1. #1
    Junior Member
    Join Date
    Nov 2009
    Location
    Scotland
    Posts
    4

    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

  2. #2
    :
    Join Date
    Dec 2002
    Posts
    3,518
    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();
    //

  3. #3
    Junior Member
    Join Date
    Nov 2009
    Location
    Scotland
    Posts
    4

    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 ?

  4. #4
    :
    Join Date
    Dec 2002
    Posts
    3,518
    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];
    }

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center