Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2010, 10:43
CaribbeanLegend вне форума Посмотреть профиль Отправить личное сообщение для CaribbeanLegend Найти все сообщения от CaribbeanLegend
  № 1  
Ответить с цитированием
CaribbeanLegend
 
Аватар для CaribbeanLegend

Регистрация: Jul 2010
Сообщений: 24
По умолчанию Вызов метода с переменным количеством аргументов

Приветствую всех!

Появилась небольшая проблема.
Есть метод, принимающий переменное количество аргументов.
Его синтаксис:
Код AS3:
public static function someMethod(_source:String, ... _params):void
Есть еще один метод, который тоже принимает переменное количество аргументов и использует метод выше. Его реализация:
Код AS3:
public static function anotherMethod(_text:String, ... _params):void
{
	// ...
	someMethod(_text, _params);
	// ...
}
Хочется, чтобы при вызове метода anotherMethod опциональные аргументы передавались и в someMethod. Как такое реализовать?
При реализации как показано, ессна, ничего толкового не происходит.

Старый 09.08.2010, 11:30
gr_crd вне форума Посмотреть профиль Отправить личное сообщение для gr_crd Посетить домашнюю страницу gr_crd Найти все сообщения от gr_crd
  № 2  
Ответить с цитированием
gr_crd
 
Аватар для gr_crd

Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
Код AS3:
public static function someMethod(_source:String, ... _params):void{
			for(var i:int=0;i<_params.length;i++){
				trace(_params[i]);
			}
		}
Цитата:
При реализации как показано, ессна, ничего толкового не происходит.
Незнаю как у вас, но trace показал, что при вызове anotherMethod("a",1,2,3); в someMethod эти параметры (_params) нормально передаются.

// UPD
Хотя да, каждое число получается NaN

Тогда пожалуй поможет полное копирование массива _params.
// UPD
не помогло
__________________
заткнись и делай


Последний раз редактировалось gr_crd; 09.08.2010 в 11:38.
Старый 09.08.2010, 12:23
CaribbeanLegend вне форума Посмотреть профиль Отправить личное сообщение для CaribbeanLegend Найти все сообщения от CaribbeanLegend
  № 3  
Ответить с цитированием
CaribbeanLegend
 
Аватар для CaribbeanLegend

Регистрация: Jul 2010
Сообщений: 24
В общем, сам отвечу на свой вопрос
Для того, чтобы работало, следует вызывать как
Код AS3:
public static function anotherMethod(_text:String, ... _params):void
{
	// ...
	_params.unshift(_text);
	someMethod.apply(null, _params);
	// ...
}

Старый 09.08.2010, 12:24
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 4  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Код AS3:
public static function someMethod(_source:String, _params:Array):void
Ну вот и все

Старый 09.08.2010, 12:48
CaribbeanLegend вне форума Посмотреть профиль Отправить личное сообщение для CaribbeanLegend Найти все сообщения от CaribbeanLegend
  № 5  
Ответить с цитированием
CaribbeanLegend
 
Аватар для CaribbeanLegend

Регистрация: Jul 2010
Сообщений: 24
Цитата:
Сообщение от ZIK68 Посмотреть сообщение
Код AS3:
public static function someMethod(_source:String, _params:Array):void
Ну вот и все
Кстати, тоже вариант Но именно с переменным количеством аргументов выглядит как-то более лаконично.

Всем большое спасибо за внимание

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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