Форум 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=129694)

incorp 08.09.2009 14:07

Параметр функции по дефолту
 
Переехал на ас3, поэтому пока иногда не понятны простейшие вещи. Например:
Код AS3:

private function addGem(col, row, type:int = undefined):McGem 
{
trace(arguments);               
newGem.type = Math.ceil(Math.random() * gemsAmmount);
//if (type != undefined) newGem.type = type;
return newGem;
}

Все лишнее убрал, оставил только суть. Функция может вызываться как с двумя параметрами так и с тремя. Когда с двумя соответственно генерим рандомный гемс, когда с тремя - конкретного типа. Если раскоментить, флеш после 15 секундного таймаута погибает. Аргументы приходят адекватные, проверял. Так что же здесь написано неправильно? чепуха ведь какая то, наверняка.

Obi 08.09.2009 14:10

int может быть только = 0
Ну и да, вы конечно убрали все лишнее, и теперь не понятно где у вас бесконечная рекурсия, которая убивает плеер.

ToRR 08.09.2009 14:17

int'у можно присвоить undefined, но возвращаться будет 0.
можно записать так:
Код AS3:

newGem.type = type ? type : Math.ceil(Math.random() * gemsAmmount);

в функции ничего криминального не вижу, проблема, видимо, в другом месте.

incorp 08.09.2009 14:25

ну да, проблема как я и думал в том к чему я не привык - на втором то всегда можно было чему угодно присвоить все что угодно:) исправил на сравнение с нулем - все заработало. Спасибо.


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

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