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

Вернуться   Форум Flasher.ru > Блоги > e4xu

Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
Оценить эту запись

Добавлены TXTService, AMFService.

Запись от wvxvw размещена 24.04.2009 в 22:18

Для начала пример:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<e4xu:Control 
	xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns:e4xu="http://e4xu.googlecode.com"
	width="800" height="600"
	initialized="testMe()"
	>
 
	<mx:Script>
		<![CDATA[
			import org.wvxvws.xmlutils.XUtils;
 
			private function serviceSuccess(value:Object):void
			{
				var xml:XML = <data>{XUtils.arrayToList(value as Array)}</data>;
				trace(xml.toXMLString());
				testTable.dataProvider = xml;
			}
 
			private function serviceFault(value:Object):void
			{
				testInput = value.toString();
			}
 
			private function testMe():void
			{
				testService.send(testMethod.fullName);
			}
		]]>
	</mx:Script>
	<e4xu:Input
		id="testInput"
		text="Test text"
		align="center"
		background="true"
		backgroundColor="0xAAAAAA"
		width="700"
		height="25"
		x="50"
		y="20"
		/>
 
	<e4xu:AMFService 
		id="testService"
		resultCallBack="serviceSuccess" 
		faultCallBack="serviceFault"
		baseURL="http://localhost/amfphp/gateway.php"
		>
		<e4xu:ServiceMethod
			id="testMethod"
			name="SimpleService"
			operation="getTable"
			>
			<e4xu:ServiceArguments>
				<mx:String>firstColumn</mx:String>
				<mx:String>secondColumn</mx:String>
			</e4xu:ServiceArguments>
		</e4xu:ServiceMethod>
 
	</e4xu:AMFService>
 
	<e4xu:Table
		id="testTable"
		width="700"
		height="500"
		backgroundAlpha="1"
		x="50"
		y="50"
		>
 
		<e4xu:columns>
			<e4xu:Column
				id="firtsColumn"
				filter="@firstColumn"
				/>
			<e4xu:Column
				id="secondColumn"
				filter="@secondColumn"
				/>
		</e4xu:columns>
 
	</e4xu:Table>
</e4xu:Control>
Код:
<?php
class SimpleService {
	public function __construct(){ }
	
	/**
	 * Returns 2D array containing test values.
	 */
	public function getTable($rowName0, $rowName1) {
		$response = array(
			array(	$rowName0 => 'Foo0',
					$rowName1 => 'Bar0'
			),
			array(	$rowName0 => 'Foo1',
					$rowName1 => 'Bar1'
			),
			array(	$rowName0 => 'Foo2',
					$rowName1 => 'Bar2'
			),
			array(	$rowName0 => 'Foo3',
					$rowName1 => 'Bar3'
			),
			array(	$rowName0 => 'Foo4',
					$rowName1 => 'Bar4'
			)
		);
		return $response;
	}
}
?>
Описание добавленых классов.
TXTService: По сути MXML обертка для URLLoadera. Позволяет общаться с серверным скриптом используя GET запрос и передавая ему аргументы в виде пар имя=значение.
AMFService: MXML обертка для NetConnection. Позволяет общаться с AMF сервером.
Основная идея заключается в том, что методы вызываемые на сервере а так же параметры, которые им передаются можно "забиндить" ну и кроме этого, для обоих сервисов используется один и тот же тип объекта для хранения ссылки на удаленный метод, что так же верно и для аргументов. Кроме этого, добавлен механизм синхронизации предотвращающий возможность одновременного обращения к удаленным методам.

Параметры:
- дебаг билд: 23К.
- релиз билд: 13К.
- всего использовано классов: 20.

Чего еще нужно доделать:
- Не хватает механизма сериализации пользовательских классов (надеюсь, что в скором будущем сделаю).
- Нужно подумать об отимизации контейнеров (вынести общие методы в один над-класс).
- Возможно разбить утилиты на группы. Вряд ли нужен такой большой класс утилит "одним куском".
- Добавить возможность "связывания" некоторым свойствам (на данный момент большинство свойств визуальных компонентов не являются [Bindable]).

Что будет в следующем примере:
- Простой механизм аутентификации с использованием сессии.
- Создание двукадрового SWF с прелоадером.
- Тест еще одного (а может и больше) визуальных компонентов.
Размещено в Frameworkless MXML
Комментарии 0 Отправить другу ссылку на эту запись
Всего комментариев 0

Комментарии

 

 


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


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