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

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

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

Регистрация: Jun 2009
Сообщений: 39
Question Как передать в метод неопределённое количество параметров?

Всем привет. Столкнулся с проблемой, не могу решить.
Сначала приведу код. У меня есть 2 класса:

QueryAMF
Код AS3:
package main{
	import flash.net.NetConnection;
	import flash.net.Responder;
	import flash.events.NetStatusEvent;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.events.AsyncErrorEvent;
 
	public class QueryAMF {
		private var netConnection:NetConnection = new NetConnection;
 
		public function QueryAMF() {
			netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
			netConnection.addEventListener(IOErrorEvent.IO_ERROR, ioErrorEventHandler);
			netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
			netConnection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
			if (!netConnection.connected) {
				netConnection.connect(Main.gateway);
			}
		}
		public function request(requestObj:Object):void {
			netConnection.call(requestObj.target,requestObj.responder,Main.viewerID,getHash(requestObj.params),requestObj.params);
		}
		private function getHash(params:String):String {
			return MD5.encrypt(Main.authKey + params);
		}
		private function netStatusHandler(e:NetStatusEvent):void {
			trace("Ошибка: " + e.info.code + " Пояснение: " + e.info.description);
		}
		private function ioErrorEventHandler(e:IOErrorEvent):void {
			trace(e);
		}
		private function securityErrorHandler(e:SecurityErrorEvent):void {
			trace(e);
		}
		private function asyncErrorHandler(e:AsyncErrorEvent):void {
			trace(e);
		}
	}
}
Main
Код AS3:
package main{
	import flash.display.MovieClip;
	import flash.net.Responder;
 
	public class Main extends MovieClip {
		public static  const gateway:String = "http://localhost/gateway.php";
		public static  var viewerID:String = "99999";
		public static  const apiID:String = "33333333";
		public static  var authKey:String;
 
		public function Main() {
			var apiSecret:String = "XXXXXXXXXXXXXXX";
			authKey = MD5.encrypt(apiID + '_' + viewerID + '_' + apiSecret);
			var responder:Responder = new Responder(onResult,onFault);
			var requestObj:Object = new Object;
			requestObj.target = "Autorize.read";
			requestObj.responder = responder;
			requestObj.params = "11111";
			var queryAMF:QueryAMF = new QueryAMF;
			queryAMF.request(requestObj);
		}
		private function onResult(e:Object):void {
			trace(e);
		}
		private function onFault(e:Object):void {
			if (e.code != undefined) {
				trace("Ошибка: " + e.code + " Пояснение: " + e.description + " Файл: " + e.details);
			} else {
				trace("Ошибка: " + e.faultCode + " Пояснение: " + e.faultString + " Файл: " + e.faultDetail);
			}
		}
	}
}
В классе Main я вызываю метод request класса QueryAMF и передаю в него объект requestObj. В методе request в netConnection.call() передаются постоянные параметры: target, responder, viewerID, hash и переменные(все остальные). Проблема в том, что переменных параметров может быть от 1 и больше. Как мне передать в объекте неопределённое количество параметров в netConnection.call().
Нашел в справке function apply(), но не понял куда её воткнуть.

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

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

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


 


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


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