Форум 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)
-   -   не работает push Array в условии. (http://www.flasher.ru/forum/showthread.php?t=131603)

.true 24.10.2009 15:21

не работает push Array в условии.
 
Не могу понять в чем дело. Вот пример функции:
Код AS1/AS2:

function xfunc(){
    var lines = new Array('_sec');  // Создали новый массив
    if(чтото){lines.push('_dsec');} // НЕ работает!!!!
    lines.push('_dsec'); // Работает.
}

Почему так может быть? oO

P.S. Он даже trace на массив lines не выводит. ппц
P.S.S. Пробовал даже добавлять так: lines[1] = '_dsec'; Тоже не пашет

udaaff 24.10.2009 15:39

Код AS1/AS2:

xfunc(); // _sec,_dsec,_dsec
function xfunc(){
    var lines = new Array('_sec');  // Создали новый массив
    if(true){lines.push('_dsec');} // НЕ работает!!!!
    lines.push('_dsec'); // Работает.
    trace(lines);
}


Сникерс 24.10.2009 15:53

А может условие не выполняется?

mooncar 24.10.2009 17:43

Автор, а разве массив, заданный с помощью var внутри функции, должен жить после ее отработки? Это же локальная объектная переменная.
Код AS1/AS2:

function xfunc(){
    var lines = new Array();
    if(true){
        lines.push('1');
    }
    lines.push('2');
 
    for (i in lines) {
    trace(i + '  ' + lines[i]);
    //выводит
    //1  2
    //0  1
    }
}
 
xfunc();       
 
for (i in lines) {
    trace(i + '  ' + lines[i]); //ничего не выводит
}

Вы где проверяли состав массива? Вне функции его нет.
Создавайте массив заранее.

Вот так все прекрасно работает, и массив остается после того, как функция отработала:
Код AS1/AS2:

var lines = new Array();  // Создали новый массив
function xfunc(){
        lines.push('_sec');
        if(true){
                lines.push('_dsec');
        }
}
 
xfunc();
 
for (i in lines) {
        trace(i + '  ' + lines[i]);
        //выводит
        //1  _dsec
        //0  _sec
}


.true 24.10.2009 20:35

Всем спасибо! Трезвый взгляд показал что условие не выполнялось) Надо больше спать и быть внимательнее))


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

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