我有一个相对简单的问题。在不使用时间轴的情况下重建多页面应用程序的最佳方法是什么。我创建了一个pagemanager类,用于添加和删除类,类充当页面。现在这似乎不是一个非常有效的方法。 我相信flex提供了一种类似HTML的方法,但是现在已经很晚才能进入flex。
有什么建议吗? 提前谢谢。
答案 0 :(得分:1)
我建议您创建一个类似于Flex中的视图堆栈的类。将它与接口(例如IPage)一起使用以强制viewstack用于加载和卸载/处置页面的方法。在viewstack上运行changePage方法后,将释放当前页面并打开新页面。当你运行它时,很容易添加转换。
像这样的东西(此代码未经过验证):
_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);
}
}
}