Eu tenho uma questão relativamente simples. Qual seria a melhor maneira de recriar um aplicativo de várias páginas sem usar a linha do tempo. Eu criei uma classe pagemanager que adiciona "s e remove classes, com classes agindo como páginas. Agora isso não parece ser um método muito eficaz. Acredito flex oferece uma abordagem semelhante como HTML, mas já é tarde para passar a flex neste momento.
Alguma sugestão? Desde já, obrigado.
Respostas:
1 para resposta № 1Eu recomendo que você crie uma classe própria que funcionasemelhante à viewstack no Flex. Use-o com uma interface (por exemplo, IPage) para forçar os métodos que você usa a viewstack para carregar e descarregar / descartar as páginas. Depois de executar o método changePage no viewstack, você descarta a página atual e abre a nova página. Quando você tem esta execução, é fácil adicionar transições.
Algo parecido com isto (este código não é validado):
_view = new ViewStack();
_view.addPage(Pages.INTRO, new IntroPage());
_view.addPage(Pages.OUTRO, new OutroPage());
_view.changePage(Pages.INTRO);
IPage.as
package
{
public interface IPage
{
function open() : void
function close() : void
}
}
ViewStack.as
package
{
import flash.display.Sprite;
public class ViewStack extends Sprite
{
public function ViewStack()
{
super();
}
public function addPage(pageID : String, page : IPage) : void
{
// add page to list
}
public function removePage(pageID : String) : void
{
// remove page from list
}
public function changePage(pageID : String) : void
{
if(_currentPage)
{
_currentPage.close();
removeChild(_currentPage);
}
_currentPage = getPageById(pageID);
_currentPage.open();
addChild(_currentPage);
}
}
}