Robusto верен, в вашем утверждении if есть ошибка. Первое, что фактически проверяет, если _1count больше _2count или _3count больше 0. Таким образом, _1count может быть 10, _2count может быть 15, а _3count может быть 5, и это будет иметь значение true.
Вы можете использовать массив объектов и отсортировать их, чтобы получить правильный ответ, это позволит сэкономить на написании все большего количества условий, если вы увеличите количество предметов, которые хотите посчитать. Это будет выглядеть примерно так:
var count0:Counter = new Counter('count0');
var count1:Counter = new Counter('count1');
var count2:Counter = new Counter('count2');
var counters:Vector.<Counter> = Vector.<Counter>([count0, count1, count2]);
counters[0].value = 101;
counters[1].value = 67;
counters[2].value = 172;
counters.sort(sortOnValue, Array.DESCENDING);
trace('The highest value was: ' + counters[0].name); // The highest value was: count2
function sortOnValue(a:Object, b:Object):Number{
if(a.value > b.value) {
return 1;
}else if(a.value < b.value) {
return -1;
}else{
//a.value == b.value
return 0;
}
}
class Counter {
public var name:String;
public var value:int;
public function Counter(name:String){
this.name = name;
}
}
См. Документацию по вектору .:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html?filter_flash=cs5&filter_flashplayer=10.1&filter_air=2#sort()
ОК, метод № 2:
var count0:Object = {name:'count0', value:0};
var count1:Object = {name:'count1', value:0};
var count2:Object = {name:'count2', value:0};
// Vector doesn't have the sortOn method, so use an Array instead
var counters:Array = [count0, count1, count2];
counters[0].value = 101;
counters[1].value = 67;
counters[2].value = 172;
counters.sortOn('value', Array.DESCENDING | Array.NUMERIC);
trace('The highest value was: ' + counters[0].name);
См. Документацию для Array, чтобы узнать, как сделать то же самое:
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/Array.html#sort()
Или смесь обоих:
var count0:Counter = new Counter('count0');
var count1:Counter = new Counter('count1');
var count2:Counter = new Counter('count2');
var counters:Array = [count0, count1, count2];
counters[0].value = 101;
counters[1].value = 670;
counters[2].value = 1720;
counters.sortOn('value', Array.DESCENDING | Array.NUMERIC);
trace('The highest value was: ' + counters[0].name);
class Counter {
public var name:String;
public var value:int;
public function Counter(name:String){
this.name = name;
}
}