Форум Flasher.ru

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

Fogflasher 03.09.2013 14:01

Array: передача массива в функцию по дефолту
 
Есть несколько массивов, содержащих в себе мувиклипы, допустим:
Код AS1/AS2:

mcArray1 = new Array(); 
mcArray2 = new Array();
mcArray3 = new Array();
mcArray4 = new Array();
mcArray5 = new Array();

Есть функция, которая в качестве параметра принимает произвольный массив, допустим:
Код AS3:

private function mcPlayer(arr:Array)
{
  //  ...
}

И допустим, в некоторый момент нужно вызвать эту функцию, не передавая ей конкретное значение массива.
Чтобы она сама выбрала некое дефолтное значение. Получится, например, так:

Код AS3:

mcPlayer();

а функцию, стало быть, нужно переопределить так:
Код AS3:

private function mcPlayer(arr:Array = mcArray1)
{
  //  ...
}

Однако, получаем ошибку:
Цитата:

1047: Parameter initializer unknown or is not a compile-time constant.
Возникают вопросы:
- что не так с передачей дефолтного параметра?
- каким образом, по классике, решается подобная задача?

PsixokoT 03.09.2013 14:04

Код AS3:

private function mcPlayer(arr:Array = null)
{
  if (!arr) arr = mcArray1;
  //  ...
}


Fogflasher 03.09.2013 14:13

PsixokoT, изящно : )

Попробовал, всё работает, спасибо.

Выходит, напрямую объекты нельзя передавать...

AlexLucas 03.09.2013 14:25

Можно только объекты примитивных типов
http://help.adobe.com/en_US/as3/mobi...7189-7fff.html


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

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