Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   проверка массива по имени символа (http://www.flasher.ru/forum/showthread.php?t=195057)

XMON 27.02.2013 18:31

проверка массива по имени символа
 
вот код:
Код AS3:

rooms = [new room100x50(), new room50x50(), new room150x50()]
cybers = rooms[Math.floor( Math.random() * rooms.length )]
if (cybers == rooms[0]) \\здесь проблемы
{
    trace ("да")
}

Как в этом коде проверить чему равна переменная cybers не по индексу массива а по имени символа?

Dip52 27.02.2013 18:36

Цитата:

Сообщение от XMON (Сообщение 1122729)
вот код:
Код AS3:

rooms = [new room100x50(), new room50x50(), new room150x50()]
cybers = rooms[Math.floor( Math.random() * rooms.length )]
if (cybers == rooms[0]) \\здесь проблемы
{
    trace ("да")
}

Как в этом коде проверить чему равна переменная cybers не по индексу массива а по имени символа?

Проверить? Или сравнить? Вы сначала определяете случайный элемент из массива, потом сравниваете его с первым элементом массива. Что вы имеете в виду под "проверить"?
Или может быть вы хотите сначала взять случайный элемент из массива, потом присвоить его переменной и проверить есть ли этот элемент в массиве, чтобы узнать "что-то"?

Argas 27.02.2013 18:39

не понятно где какой тип данных, и про имя какого символа вы говорите

Juice_Green 27.02.2013 18:47

Код AS3:

if (cybers is room100x50) {}


Asfel 27.02.2013 18:49

Код AS3:

var rooms:Object = {room100x50:new room100x50, room50x50:new room50x50}
 
var cybers:String = room100x50;
 
trace(rooms[cybers])//room100x50 object


XMON 27.02.2013 18:54

Цитата:

Сообщение от Juice_Green (Сообщение 1122737)
Код AS3:

if (cybers is room100x50) {}


спасибо!

Dip52 27.02.2013 19:00

Код AS3:

var numbers:Array = [1,2,3,4,5,6,7,8,9,10];
 
var lengthArray:int = numbers.length;
//Отнимаю 1 от длины массива потому, что длина массива равна 10, а вот 10 элемент имеет индекс 9. Если случайное число будет равно 10, то ничего не выведется.
var randomNumber:int = Math.random() * (lengthArray - 1);
 
for(var i:Number = 0; i < lengthArray; i++)
{
        //Искомый элемент:
        var requiredElement = numbers[randomNumber];
        //Элемент массива:
        var element = numbers[i];
 
        //Если в массиве есть элемент (ну или is):
        if(requiredElement == element)
        {
                trace("Искомый элемент:",requiredElement,'есть в массиве и имеет индекс:',i);
        }
}
 
//Искомый элемент: 3 есть в массиве и имеет индекс: 2


XMON 27.02.2013 19:22

у меня возникла проблема...
немножко не по теме но всёже новую тему решил не создавать
вот код:

Код AS3:

var rooms
var roomsd = [new BBB(), new BB(), new B()]
rooms = [roomsd]
addChild (rooms[0])

но при исполнении данного кода вылазит ошибка:
Код AS3:

TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать []@2633b179 в flash.display.DisplayObject.
at _fla::MainTimeline/frame1()

как её решить?

Asfel 27.02.2013 19:27

Не пытаться добавлять массив на сцену
Код AS1/AS2:

addChild (rooms[0])


Код AS3:

addChild (roomsd[0]


AlexCooper 27.02.2013 19:29

в данном случае ваш класс new BBB() наследует то что нельзя разместить на сцене. Что у вас написано в классе BBB после extends?


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

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