4,328
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init();"
layout="absolute" width="1024" height="968" textAlign="center" title="一个可以自动滚动的网页浏览器" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
<mx:Script>
<![CDATA[
import mx.controls.TextArea;
import mx.controls.Alert;
import flash.html.HTMLLoader;
import flash.net.URLRequest;
import flash.display.NativeWindowDisplayState;
import mx.core.UIComponent;
private var htmlLoader:HTMLLoader = new HTMLLoader();
private var isFirst:Boolean = true;
private var lastSV:int = 0;
private var aURL:Array = new Array("http://localhost/1.htm",
"http://localhost/2.htm",
"http://localhost/3.htm",
"http://localhost/4.htm");
private var index:int = 0;
private var runReq:URLRequest = null;
private var myTimer:Timer = new Timer(100, 0);
public function init():void
{
TimerExample();
load(aURL[index]);
return ;
}
private function load(url:String):void
{
var urlReq:URLRequest = new URLRequest(url);
// HTMLLoader Class size defaults to 0,0 so you must size it.
htmlLoader.width = txt.width;
htmlLoader.height = txt.height;
this.runReq = urlReq;
// load URLRequest
htmlLoader.load(this.runReq);
// Create UIComponent to add html object to
var myComponent:UIComponent = new UIComponent();
myComponent.addChild(htmlLoader);
txt.addChild(htmlLoader);
return ;
}
public function TimerExample() {
myTimer.addEventListener("timer", OnTimeRun);
myTimer.start();
}
private function OnTimeRun(event:TimerEvent):void
{
if(this.htmlLoader.loaded == true)
{//已经加载完成,开始显示并滚动
if(htmlLoader.scrollV > 0 && htmlLoader.scrollV > lastSV)
{//当前播放进行中,记录一下本次滚轴的位置
lastSV = htmlLoader.scrollV;
}else if(htmlLoader.scrollV > 0 && htmlLoader.scrollV == lastSV)
{//当前播放结束了
index++;
if(index == this.aURL.length)
index = 0;
load(this.aURL[index]);
htmlLoader.scrollV = 0;
lastSV = 0;
}else if(htmlLoader.contentHeight == txt.height)
{//只有一页,关闭当前事件并暂停5秒钟
this.myTimer.stop();
flash.utils.setTimeout(Sleep, 5000);
}
htmlLoader.scrollV = htmlLoader.scrollV + (htmlLoader.contentHeight / 500)/2;
if(isFirst == true)
{
if(stage.displayState == NativeWindowDisplayState.NORMAL){
stage.displayState = StageDisplayState.FULL_SCREEN;
}
this.isFirst = false;
}
}
return;
}
internal function Sleep():void
{
index++;
if(index == this.aURL.length)
index = 0;
load(this.aURL[index]);
myTimer.start();
return ;
}
private function maxWin():void
{//最大化/恢复
if(stage.displayState == NativeWindowDisplayState.NORMAL){
stage.displayState = StageDisplayState.FULL_SCREEN;
}else{
stage.displayState = StageDisplayState.NORMAL;
}
return ;
}
]]>
</mx:Script>
<mx:TextArea id="txt" x="0" y="0" width="1024" height="768" textAlign="center" />
</mx:WindowedApplication>