Показать сообщение отдельно
Старый 04.03.2011, 15:18
Prometei1599 вне форума Посмотреть профиль Отправить личное сообщение для Prometei1599 Найти все сообщения от Prometei1599
  № 1  
Ответить с цитированием
Prometei1599

Регистрация: Jun 2010
Сообщений: 65
По умолчанию Вопрос с приведением типов или "что я делаю не так?"

Добрый день коллеги!
Вот снова наткнулся на камень преткновения.
Простой пример кода:
Код AS1/AS2:
var dataValuesArray:Array = new Array();
 
function mainFunction(){
	var xml_obj: XML = new XML();
	xml_obj.ignoreWhite = true;
	xml_obj.load("file.xml");
	xml_obj.onLoad = function(success:Boolean){
		if(success){
			var k:Number = 0;
			do{
				var val:Number = xml_obj.firstChild.childNodes[0].childNodes                          [k].attributes.dataValue;
				if((val==undefined))
					break;
				startIDsArray[k] = val;
				k++;
			}while(true)
			//Данный фрагмент кода показывает, что из строки была выделена подстрока
			//методом split и был выбран числовой элемент массива
			var arr:Array = new Array();
			arr[0] = "5";
			//
			var numVale:Number = arr[0];//передаем ссылку(или пытаемся привести тип к Number)
			mainMC["imgNumber"] = numValue;//добавляем динамическую переменную в MC
		}
	}
}
 
mainMC.onPress = function(){
	var n:Number = mainMC.imgNumber;//снова передаем ссылку или пытаемся привести к типу Number
		if((n >= dataValuesArray[0])&&(n < dataValuesArray[1])){
			trace("1st condition activated");
		}		
		if((n >= dataValuesArray[1])&&(n < dataValuesArray[2])){
			trace("2nd condition activated");
		}
		if((n >= dataValuesArray[2])&&(n < dataValuesArray[3])){
			trace("3d condition activated");
		}
		if((n >= dataValuesArray[3])&&(n <= dataValuesArray[4])){
			trace("4th condition activated");
		}
		if(n >= dataValuesArray[4]){
			trace("5th condition activated");
		}
}
 
mainFunction();
А вот xml файл:
Код:
<settings>

<mno cont="23">
<txt1 dataValue="1">каталог компании Antepro</txt1>
<txt2 dataValue="6">каталог компании Атомэнергопром</txt2>
<txt3 dataValue="12">каталог компании Мосстройресурс</txt3>
<txt4 dataValue="16">каталог компании Rider</txt4>
<txt5 dataValue="21">каталог компании Rusal</txt5>
</mno>

</settings>
В результате в консоле должно отобразиться одно из условий. Но выводится следующее:

4th condition activated
5th condition activated

Тут проблема с приведением типа String к типу Number.
Что можно сделать в этом случае?

Спасибо!