Страницы в Gaia Framework

Введение

“Физически” страницы в Gaia представлены шаблонными Flash файлами, которые создаются во время процесса Scaffolding’а и-или созданные вами самостоятельно. Страницы могут содержать ассеты (Assets), так же как и другие страницы. Они представлены в site.xml в узлах <page>.

Это продолжение перевода, начало в Gaia Начало работы

Переходы между страницами

Страницы в Gaia имеют предустановленные переходы (transition) в- и из- (in/out). Переходы могут реализовываться в таймлайне или в коде, или комбинироваться. Это полностью Ваше решение.

Есть четыре требуемых метода для страниц в Gaia Framework, и они следуют стандартным соглашениям для timeline-based сред.

  • transitionIn();
  • transitionOut();
  • transitionInComplete();
  • transitionOutComplete();

Страницы (класс Pages) поучают эти события из Gaia и классы документов swf должны иметь эти методы определенными. Вы должны вызывать методы “complete” в конце переходов, так что Gaia будет знать что страница закочила переход к ней или выход из нее. Gaia автоматически определяет эти методы за вас для каждого созданного fla файла.

Если у вас timeline переходы, вы можете вызывать эти методы в root timeline. Если у вас actionscript переходы, вы должны указывать timeline страницы, или класс страницы ассоциированный с этим таймлайном (AS2/AS3).

Например, если вы используете что либо вроде TweenLite для переходов, то вы можете установить методы complete как onComplete параметр для объекта который вы передаете в TweenLite. Шаблоны actionscript переходов Gaia’s для скаффолдинга используют такой код.

AS2

public function transitionOut():Void
{
TweenLite.to(this, .3, {_alpha:0, onComplete:Delegate.create(this, transitionOutComplete)});
}

AS3

override public function transitionOut():void
{
TweenLite.to(this, .3, {alpha:0, onComplete:transitionOutComplete});
}

В целом, рекомендуется не перегружать (override) методы complete и вместо этого просто вызывать их. Вы можете перегружать такие методы в AS3 без проблем, но в AS2 есть ошибка Flash при перегрузке методов complete при использовании шаблонов стилей таймлайн переходов.

Свойства Page

Есть свойства которые установлены в root timeline для of swf страницы, assets и page.

Эти три свойства недоступны до вызова transitionIn().

assets

assets:Object

Если у страницы есть ассеты в site.xml, они доступны через это свойство-объект по своим id. Более подробно о том как получать доступ к ассетам находится в разделе Ассеты документации.

page

page:PageAsset

Ссылка на класс PageAsset class страницы. Это дает прямой доступ к сойствам которые создает Gaia для определения страницы, такие как над-узел, дочерние узлы, ветка и другие свойства.

Пример:

AS2 and AS3

var myBranch:String = page.branch;
var myParentSrc:String = page.getParent().src;

Более подробно о публичных свойствах страницы рассказано в разделе Site XML.

copy

copy:Object

Если у страницы включен SEO в site.xml и соответствующая XHTML страница была создана, значения тэгов <p> tag будут доступны через объект copy. Подробнее об этом в разделе документации о SEO.

var TXT_Header:TextField;
TXT_Header.text = copy.someValue;
trace(copy.anotherValue);

onDeeplink

Необязательный метод для deeplinkинга, работает с SWFAddress.

onDeeplink(event:GaiaSWFAddressEvent)

Когда происходит событие deeplink от SWFAddress, через этот метод будет передана deeplink ссылка. У события есть свойство deeplink. Gaia управляет процессом сама и вам не надо устанавливать страницы как listener’ы для добавления deeplink вручную. Больше информации о событиях deeplink events можно найти в разделе Events и Hijacking.

Техническая информация

Внутри Gaia, страницы реализуются классом PageAsset, который наследует от MovieClipAsset. Swf страницы загружается в динамически создаваемый MovieClip и ссылка на этот MovieClip передается экземпляру PageAsset. Ссылка на класс PageAsset и его свойство “assets” устанавливается в root timeline или в класс документа этого MovieClip. Класс документа этого MovieClip создается во время scaffolding процесса и расширяет AbstractPage, который расширяет AbstractBase.

Два свойства, assets и page, а также событие onDeeplink находятся в классах AbstractPage и AbstractBase от которых наследуют классы страниц. Оба этих класса лежат в пакете com.gaiaframework.templates.

Страницы AS2

Если вы используете шаблоны Timeline, то в timeline каждой созданной при scaffold процессе страницы вы найдете слой AS (Actionscript), слой LABELS, и слой для контента. Вы также увидите две установленные метки, “in” и “out”.

Если вы используете шаблоны Actionscript, то будет только один фрэйм.

В первом фрэйме слоя AS, находится следующий код:

import Package.Page;
Page.initDocumentClass(this);
stop();
scaffold();

Package и Page будут названы соответственно пакету классов страниц и id страницы. Метод initDocumentClass(this) эмулирует функциональность AS3 класса Document.

Как только вы будете готовы к работе над страницой, вы можете удалить строку “scaffold();” и удалить эту функцию из класса страницы.

Страницы AS3

Страницы AS3 используют класс документа и вышепреведенный код не требуется . Если вы используете шаблоны Timeline, то все похоже на вышесказанное за исключением того чтов в первом фрэйме вызывается stop();. При использовании шаблонов Actionscript, в timeline кода нет. Весь scaffolding это одна строка в конструкторе класса страницы.

var s:Scaffold = new Scaffold(this);

Классы страниц

Классы страниц AS2 и AS3 расширяют AbstractPage который расширяет AbstractBase и реализует IPage и IBase интерфейсы, соответственно.

AbstractPage содержит свойства assets и page, а также функцию onDeeplink.

AbstractBase содержит четыре необходим метода переходов. Вы можете перезагрузить (override) методы transitionIn() и transitionOut(), которые по умолчанию имеют gotoAndPlay() методы, или вы можете слушать отсылаемые ими события.

Методы transitionInComplete() и transitionOutComplete() не должны исправлятся, и если вы их изменети для подстройки под себя, убедитесь что вы вызываете super class method в AbstractBase.

Удаление Scaffolding из страниц

После создания каркаса сайта (scaffolded your site), удаление строительных лесов весьма просто.

В AS3, удалите эту строку из конструкторов классов Page:

var s:Scaffold = new Scaffold(this);

В AS2, удалите эту строку из первого фрэйма файлов Page :

scaffold();

Также, свободно удаляйте Also, scaffold() метод из AS2 классов Page.

Как только вы полностью удалите эту строку из всех ваших страниц, вы можете удалить scaffold.swf их папки развертывания (deploy), а класс Scaffold.as из пакета в котором лежат ваши классы страниц.

Вы можете также убрать вызовы super.transitionIn() и super.transitionOut() в AS2 или AS3, если хотите.

Файл preload.fla содержит PreloaderScaffold символ в библиотеке. Он связан с классом PreloaderScaffold.as в папке с пакетом созданных файлов. Если хотите, вы можете удалить этот символ и библиотеки и ассоциированный класс после того как создадите собственный прелоадер. Большинство разработчиков использует PreloaderScaffold как исходник, так что можете использовать его себе на здоровье.

*** Убедитесь, что вы опубликуете файлы страниц еще раз после удаления файлов и кода Scaffolding***

Метки: , , , , , , ,

Оставить комментарий

Вы должны войти чтобы оставить комментарий.