первое сообщение, извините, если я заранее нарушаю какие-либо соглашения: -)
Интересно, как бы вы справились со следующим сценарием.
Мне нужно создать общий API, которыйпредоставляет функции отслеживания игры (отслеживание нажатий, отслеживание определенного события и т. д.).Этот универсальный API должен подключаться к одному из двух (или более) индивидуальных решений по отслеживанию, предоставляемых третьими сторонами (например, itracku.com и itrackutoo.com) в фоновом режиме.
Специальные решения по отслеживанию имеют аналогичные функции (trackClick, trackEvent), но значительно различаются по количеству требуемых аргументов (например, один требует передачи одного аргумента, другой - 6).
Для того, чтобы универсальный API-интерфейс легко переключался между нажатием на любое из предложенных решений,Прав ли я, предполагая, что ВСЕ аргументы должны быть заранее определены, чтобы облегчить переключение решений отслеживания?Желание НЕ нужно перекомпилировать .swfs, чтобы переключить решение для отслеживания (т. Е. Оно переключается через XML-конфигурацию).Я думал о достижении этого, когда мои общие API-функции принимают один объект в качестве аргумента, например,
// itracku.com
iTrackUObj:Object = new Object();
iTrackuObj.param1 = 1;
// itrackutoo.com
iTrackUTooObj:Object = new Object();
iTrackUTooObj.param1 = 1;
iTrackUTooObj.param1 = 2;
iTrackUTooObj.param1 = 3;
iTrackUTooObj.param1 = 4;
iTrackUTooObj.param1 = 5;
iTrackUTooObj.param1 = 6;
// my generic function, which accepts an object as a single parameter then validates the object
myGenericFunction(iTrackUObj);
//…or
myGenericFunction(iTrackUTooObj);
Можете ли вы придумать более эффективный способ достижения этого?Я думаю, это скорее вопрос технической архитектуры, нежели вопроса ActionScript, но я думаю, что вышеизложенное может показаться немного неуклюжим при использовании в реальных условиях.
Спасибо за любую помощь или предложения