我从来没有遇到过Hileloader的页面历史记录后退和前进的问题,Htmlloader是主要Native Window阶段的子项。我只需要使用:HtmlLoaderVariable.historyForward();
但是当我将HTMLLoader作为子项添加到新的本机窗口时,它似乎不起作用。
以下是代码:
function createNewHtmlWindow(pageUrl:String):void{
//Everytime I click a button, this function creates a seperate Native Window each containing HtmlLoader Class to load a webpage
var myhtml= new HTMLLoader();
myhtml.width = 1000;
myhtml.height = 780;
myhtml.addEventListener(Event.COMPLETE, myHtmlLoaded);
var myHtmloptions = new NativeWindowInitOptions();
myHtmloptions.transparent = false;
myHtmloptions.systemChrome = NativeWindowSystemChrome.STANDARD;
myHtmloptions.type = NativeWindowType.NORMAL;
var extHtmlWindow = new NativeWindow(myHtmloptions);
extHtmlWindow.title="new title";
extHtmlWindow.width = 1015;
extHtmlWindow.height = 800;
extHtmlWindow.activate();
extHtmlWindow.stage.align = "TL";
extHtmlWindow.stage.scaleMode = "noScale";
extHtmlWindow.stage.addChild(myhtml);
var backNativeWin=new BackButton();
backNativeWin.x=5;
backNativeWin.y=500;
backNativeWin.addEventListener(MouseEvent.CLICK, loadPrevHistory);
extHtmlWindow.stage.addChild(backNativeWin);
var nextNativeWin=new NextButton();
nextNativeWin.x=30;
nextNativeWin.y=500;
nextNativeWin.addEventListener(MouseEvent.CLICK, loadNextHistory);
extHtmlWindow.stage.addChild(nextNativeWin);
myhtml.load(new URLRequest(pageUrl));
}
function myHtmlLoaded(e:Event):void
{
//Page loads successfully
}
function loadNextHistory(m:MouseEvent):void{
output.text="Next>>"+m.target.parent.getChildAt(0); //Next>>[object HTMLLoader]
m.target.parent.getChildAt(0).historyForward(); // This line is not working
}
function loadPrevHistory(m:MouseEvent):void{
output.text="Prev>>"+m.target.parent.getChildAt(0); //Prev>>[object HTMLLoader]
m.target.parent.getChildAt(0).historyBack(); // This line is not working
}
答案 0 :(得分:1)
我已经使用自己的网页尝试了您的代码,它运行得非常好.. 这是我的代码:
import flash.html.HTMLLoader;
import org.aswing.JButton;
import flash.filesystem.File;
function createNewHtmlWindow(pageUrl:String):void{
//Everytime I click a button, this function creates a seperate Native Window each containing HtmlLoader Class to load a webpage
var myhtml= new HTMLLoader();
myhtml.width = 1000;
myhtml.height = 680;
myhtml.addEventListener(Event.COMPLETE, myHtmlLoaded);
var myHtmloptions = new NativeWindowInitOptions();
myHtmloptions.transparent = false;
myHtmloptions.systemChrome = NativeWindowSystemChrome.STANDARD;
myHtmloptions.type = NativeWindowType.NORMAL;
var extHtmlWindow = new NativeWindow(myHtmloptions);
extHtmlWindow.title="new title";
extHtmlWindow.width = 1015;
extHtmlWindow.height = 700;
extHtmlWindow.activate();
extHtmlWindow.stage.align = "TL";
extHtmlWindow.stage.scaleMode = "noScale";
extHtmlWindow.stage.addChild(myhtml);
var backNativeWin:JButton=new JButton("back");
backNativeWin.setSizeWH(100,22);
backNativeWin.x=5;
backNativeWin.y=500;
backNativeWin.addEventListener(MouseEvent.CLICK, loadPrevHistory);
extHtmlWindow.stage.addChild(backNativeWin);
var nextNativeWin=new JButton("next");
nextNativeWin.setSizeWH(100,22);
nextNativeWin.x=130;
nextNativeWin.y=500;
nextNativeWin.addEventListener(MouseEvent.CLICK, loadNextHistory);
extHtmlWindow.stage.addChild(nextNativeWin);
myhtml.load(new URLRequest(pageUrl));
}
function myHtmlLoaded(e:Event):void{
//Page loads successfully
}
function loadNextHistory(m:MouseEvent):void{
trace("Next>>"+m.target.parent.getChildAt(0)); //Next>>[object HTMLLoader]
m.target.parent.getChildAt(0).historyForward(); // This line is not working
}
function loadPrevHistory(m:MouseEvent):void{
trace("Prev>>"+m.target.parent.getChildAt(0)); //Prev>>[object HTMLLoader]
m.target.parent.getChildAt(0).historyBack(); // This line is not working
}
createNewHtmlWindow(File.desktopDirectory.resolvePath("index.html").url);
这是我桌面上的index.html:
<html>
<head>
<title>This is a test page</title>
</head>
<body>
<a href="http://www.google.com">Click me to jump to Google.</a>
</body>
所以我认为你的测试网站一定有问题,换另一个再尝试可能有帮助..