Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос с приведением типов или "что я делаю не так?" (http://www.flasher.ru/forum/showthread.php?t=151726)

Prometei1599 04.03.2011 15:18

Вопрос с приведением типов или "что я делаю не так?"
 
Добрый день коллеги!
Вот снова наткнулся на камень преткновения.
Простой пример кода:
Код 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.
Что можно сделать в этом случае?

Спасибо!

Hauts 04.03.2011 15:49

parseInt поможет.

Prometei1599 04.03.2011 16:01

Сработало! Спасибо! Забыл про него совсем!)


Часовой пояс GMT +4, время: 13:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.