Português:Páginas

Introdução
Páginas no Gaia são representadas "fisicamente" por arquivos do Flash, que são criados durante o processo de scaffolding e/ou que você cria por conta própria. As Páginas podem conter Assets, assim como outras páginas. Elas são representadas no site.xml como page nodes.

Em sua essência, as Páginas são simplesmente MovieClipAssets (ver Assets) que tem embutidos o controle das transições e a relação com seus assets, parents e children.



Transições de Página
As Páginas no Gaia são configuradas com transition in e out. As transições podem ser feitas na timeline, via código ou qualquer combinação dos dois. Fica a seu gosto.

Existem quatro métodos requeridos para as Páginas do Gaia, nomeados de acordo com os padrões de naming para a timeline.


 * transitionIn;
 * transitionOut;
 * transitionInComplete;
 * transitionOutComplete;

As páginas recebem estes eventos do Gaia e os arquivos das Páginas devem ter todos esses métodos definidos. Você deve chamar os métodos "completos" no final de suas transições para que o Gaia saiba que a página terminou sua transição de entrada ou saída. O Gaia tem esses métodos definidos automaticamente para você.

Se suas transições são feitas na timeline, você pode chamar estes métodos na timeline principal da página. Se a transição for feita por código, você só precisa usar como target a timeline da página, ou a classe do documento associada a essa timeline (AS2/AS3).

Por exemplo, se você usa algo como o TweenLite para suas transições, você pode configurar os métodos do Gaia como o parâmetro onComplete do objeto que você passou para o TweenLite. Os Templates de Transição Actionscript do Gaia utilizam esse código.

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

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

Em geral, não é recomendado que você ignore os complete methods e simplesmente os chame. Você pode ignorar os complete methods do AS3 sem problemas, mas há um bug no AS2 se você ignora os complete methods quando usar o template de transição na timeline.



Propriedades da Página
Existem três propriedades que estão configuradas na timeline principal dos seus swfs: assets, page e copy.

Nota: Estas três propriedades não estão disponíveis até que transitionIn seja chamada.

assets
assets:Object Se uma página tem assets no site.xml, eles são armazenados neste objeto por sua id. Mais informações sobre como acessar assets pode ser encontrada no seção Assets da documentação.

page
page:PageAsset Uma referência para a classe PageAsset da página está disponível nesta propriedade. Isso dá acesso direto às propriedades que o Gaia usa para definir sua página, como parents, childrens, branches ou outras propriedades da página. Exemplo:

AS2 and AS3

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

Saiba mais sobre public page properties na seção Site XML da documentação.

copy
copy:Object Se uma página tem SEO ativado no site.xml e uma página XHTML foi gerada para esta página, os valores da tag p estarão disponíveis no Objeto copy. Leia a documentação sobre SEO para mais informações. var TXT_Header:TextField; TXT_Header.text = copy.someValue; trace(copy.anotherValue);

onDeeplink
Há um método opcional para a funcionalidade deeplink que funciona com SWFAddress.

onDeeplink(event:GaiaSWFAddressEvent)

Quando um evento deeplink ocorre pelo SWFAddress, o deeplink será passado ao swf da página por este método. O evento tem a propriedade deeplink. O Gaia cuida disso, então você não precisa se preocupar em adicionar ou remover páginas como listeners do evento deeplink manualmente. Mais informações sobre eventos deeplink na seção Eventos e Hijacking da documentação.

O GaiaSWFAddressEvent tem duas propriedades, deeplink e branch. A propriedade deeplink é o valor que está além do branch válido, e a propriedade branch é o branch válido, do qual o valor do deeplink faz parte.

Você sobrepõe este método na sua classe de página desta forma:

AS3 override public function onDeeplink(event:GaiaSWFAddressEvent):void {   // manipula o event.deeplink }

AS2 public function onDeeplink(event:GaiaSWFAddressEvent):Void {   // manipula o event.deeplink }

Se você tem clips ou classes dentro de suas páginas que precisam responder a este evento, você pode apenas criar um listener para a página do evento GaiaSWFAddressEvent.DEEPLINK. Você precisa chamar super.onDeeplink(event) em sua sobreposição, se quiser utilizar esta funcionalidade. De outra forma, você não irá precisar chamar o método super, caso você não queira.



Informação Técnica
No Gaia, Pages são instâncias da classe PageAsset, que é herdada de MovieClipAsset. Um Page swf é carregado dentro de um MovieClip gerado dinamicamente, e uma referência a esse MovieClip é passada para sua instância de PageAsset. Uma referência à classe PageAsset e sua propriedade "assets" é definida na document class do MovieClip. Essa classe é gerada durante o processo de scaffolding e herda a classe AbstractPage, que por sua vez herda a AbstractBase.

As três propriedades, assets, page e copy, bem como o onDeeplink event listener, são encontrados nas classes AbstractPage e AbstractBase de que as páginas são herdadas. Todas essas classes estão no package com.gaiaframework.templates.

Páginas AS3
Páginas AS3 usam uma document class, e dispensam o código acima. Se você está usando templates de Timeline, a utilização é similar à descrita acima, exceto que o único método no primeiro frame é stop;. Se você está usando templates de Actionscript, não há nenhum código na timeline. O scaffolding é uma única linha no construtor da classe da página. new Scaffold(this);

Páginas AS2
Se você está usando templates de Timeline, na timeline de cada página "scaffolded" você irá ver um layer AS (Actionscript), um layer LABELS, e um layer de conteúdo, além de duas frame labels, "in" e "out".

Se você está usando templates de Actionscript, o documento tem apenas um frame.

No primeiro frame do layer AS, você pode ver o seguinte código:

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

O Package e a Página serão nomeados de acordo com o class package e a id da página. Dentro da classe da página, o método initDocumentClass(this) simula a funcionalidade de uma AS3 Document Class.

Assim que estiver tudo pronto, você pode deletar a linha "scaffold;" e remover a função scaffold da classe da página.

Page Classes
As page classes AS2 e AS3 herdam a classe AbstractPage, que herda a classe AbstractBase; e implementam as interfaces IPage e IBase, respectivamente.

A classe AbstractPage contém os assets e as propriedades da página, além da função onDeeplink.

AbstractBase contém os quatro métodos de transição requeridos. Você pode querer ignorar os métodos transitionIn e transitionOut, que por padrão têm métodos gotoAndPlay, ou pode preferir adicionar um listener aos eventos que eles disparam.

Os métodos transitionInComplete e transitionOutComplete não devem ser modificados, e se você os ignora por algum motivo, certifique-se de chamar o método super class em AbstractBase.



Removendo Scaffolding das Páginas


Assim que o processo de scaffolding do seu site estiver pronto, remover o scaffolding é simples.

Em AS3, delete esta linha nos Page class constructors: new Scaffold(this);

Em AS2, delete esta linha no primeiro frame dos arquivos Page template: scaffold;

Sinta-se à vontade para deletar o método scaffold nas AS2 Page Classes.

Assim que você tiver removido totalmente essa linha de código de todas as suas páginas, você poderá então remover o arquivo scaffold.swf da pasta deploy, e a classe Scaffold.as do package onde você fez o processo de scaffolding. Isso não é necessário, mas quando remover o código de scaffold das suas páginas estes arquivos não serão mais utilizados, então você também pode deletá-los.

Você pode também remover super.transitionIn e super.transitionOut, tanto no AS2 quanto no AS3, se quiser.

O arquivo preload.fla tem um clip na sua Library chamado PreloaderScaffold. Ele é associado à classe PreloaderScaffold.as no package onde você fez o scaffolding. Se quiser, você pode deletar esse clip e sua classe associada, desde que você escreva seu próprio preloader. Muita gente usa o PreloaderScaffold como ponto de partida, você também pode fazer seu preloader desta maneira.

*** Assegure-se de publicar os arquivos das suas Páginas mais uma vez depois de remover o código de Scaffolding ***