DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> Html5實現iPhone開機界面示例代碼
Html5實現iPhone開機界面示例代碼
編輯:HTML5詳解     

今天我突發其想,想到可以用Html5來仿照蘋果操作系統做一個能在Web平台運行的iOS。 
當然,要開發出一個操作系統,等我再歸山修練一百年再說吧。今天就先娛樂一下,先搞一個開機界面。 
完工後的圖片: 
 
擔心圖片是被我PS後的同學可以直接進入下面的地址測試: 
http://www.cnblogs.com/yorhom/articles/3163078.Html 
由於lufylegend封裝得的確不錯,本次開發還是用該引擎做的。代碼不多,感興趣的朋友可以直接看一下。 
index.Html中的代碼: 

 

復制代碼代碼如下:
<!DOCTYPE Html> 
<Html> 
<head> 
<meta charset="utf-8" /> 
<title>iphone</title> 
<script src="./lufylegend-1.7.7.min.JS"></script> 
<script src="./js/Main.JS"></script> 
</head> 
<body> 
<div id="mylegend">loading......</div> 
</body> 
</Html> 
 


Main.JS中的代碼: 

 

復制代碼代碼如下:
init(50,"mylegend",450,640,main); 
LGlobal.setDebug(true); 
var loadData = [ 
{path:"./js/Shape.js",type:"JS"}, 
{path:"./js/BootPage.JS",type:"JS"}, 
{name:"wallpaper",path:"./images/wall_paper.jpg"} 
]; 
var datalist = {}; 
var backLayer,iphoneLayer,screenLayer,buttonLayer; 
var iOSShape; 
var bootPage; 
function main(){ 
LLoadManage.load(loadData,null,gameInit); 

function gameInit(result){ 
datalist = result; 
//初始化層 
initLayer(); 
//加入iphone外殼 
addShape(); 
//加入開機界面 
addBack(); 

function initLayer(){ 
//背景層 
backLayer = new LSprite(); 
addChild(backLayer); 

function addShape(){ 
iOSShape = new Shape("IPHONE",400,600); 
iOSShape.x = 15; 
iOSShape.y = 5; 
backLayer.addChild(iOSShape); 

function addBack(){ 
bootPage = new BootPage(); 
bootPage.x = 40; 
bootPage.y = 40; 
var wallPaperWidth = iOSShape.getScreenWidth(); 
var wallPaperHeight = iOSShape.getScreenHeight(); 
bootPage.addWallPaper(new LBitmapData(datalist["wallpaper"],200,480,wallPaperWidth,wallPaperHeight)); 
bootPage.addTime(); 
bootPage.addSlider(); 
iOSShape.addChild(bootPage); 

 


Shape.JS裡的代碼: 

 

復制代碼代碼如下:
/* 
* Shape.JS 
**/ 
function Shape(type,width,height){ 
var s = this; 
base(s,LSprite,[]); 
s.x = 0; 
s.y = 0; 
s.deviceWidth = width; 
s.deviceHeight = height; 
s.type = type; 
//外殼層 
s.shapeLayer = new LSprite(); 
s.addChild(s.shapeLayer); 
//Home按鈕層 
s.homeButtonLayer = new LSprite(); 
s.addChild(s.homeButtonLayer); 
//屏幕層 
s.screenLayer = new LSprite(); 
s.addChild(s.screenLayer); 
//顯示自身 
s._showSelf(); 

Shape.prototype._showSelf = function(){ 
var s = this; 
switch(s.type){ 
case "IPHONE": 
//畫外殼 
var shadow = new LDropShadowFilter(15,45,"black",20); 
s.shapeLayer.graphics.drawRoundRect(10,"black",[0,0,s.deviceWidth,s.deviceHeight,15],true,"black"); 
s.shapeLayer.filters = [shadow]; 
//畫屏幕 
s.screenLayer.graphics.drawRect(0,"black",[s.deviceWidth/10,s.deviceWidth/10,s.deviceWidth*0.8,s.deviceHeight*0.8],true,"white"); 
//畫Home按鈕 
s.homeButtonLayer.graphics.drawArc(1,"black",[s.deviceWidth/2,s.deviceHeight*0.87 + s.deviceWidth/10,s.deviceWidth/16,0,2*Math.PI],true,"#191818"); 
s.homeButtonLayer.graphics.drawRoundRect(3,"white",[s.deviceWidth/2-10,s.deviceHeight*0.87 + s.deviceWidth/10 - 10,20,20,5]); 
break; 

}; 
Shape.prototype.getScreenWidth = function(){ 
var s = this; 
return s.deviceWidth*0.8; 
}; 
Shape.prototype.getScreenHeight = function(){ 
var s = this; 
return s.deviceHeight*0.8 
}; 
 


最後是BootPage.JS裡的代碼: 

 

復制代碼代碼如下:
/* 
* BootPage.JS 
**/ 
function BootPage(){ 
var s = this; 
base(s,LSprite,[]); 
s.x = 0; 
s.y = 0; 
s.timeLayer = new LSprite(); 
s.sliderLayer = new LSprite(); 

BootPage.prototype.addWallPaper = function(bitmapdata){ 
var s = this; 
//加入背景圖片 
s.wallPaper = new LBitmap(bitmapdata); 
s.addChild(s.wallPaper); 
}; 
BootPage.prototype.addTime = function(){ 
var s = this; 
var shadow = new LDropShadowFilter(1,1,"black",8); 
s.addChild(s.timeLayer); 
s.timeLayer.graphics.drawRect(0,"",[0,0,iOSShape.getScreenWidth(),150],true,"black"); 
//加入時間文本區 
s.timeLayer.alpha = 0.3; 
s.timeText = new LTextFIEld(); 
s.timeText.x = 70; 
s.timeText.y = 20; 
s.timeText.size = 50; 
s.timeText.color = "white"; 
s.timeText.weight = "bold"; 
s.timeText.filters = [shadow]; 
//加入日期文本區 
s.dateText = new LTextFIEld(); 
s.dateText.size = 20; 
s.dateText.x = 110; 
s.dateText.y = 100; 
s.dateText.color = "white"; 
s.dateText.weight = "bold"; 
s.dateText.filters = [shadow]; 
s.addChild(s.timeText); 
s.addChild(s.dateText); 
//通過時間軸事件更新日期 
s.addEventListener(LEvent.ENTER_FRAME,function(s){ 
var date = new Date(); 
if(date.getMinutes() < 10){ 
if(date.getHours() < 10){ 
s.timeText.text = "0" + date.getHours() + ":0" + date.getMinutes(); 
}else{ 
s.timeText.text = date.getHours() + ":0" + date.getMinutes(); 

}else{ 
if(date.getHours() < 10){ 
s.timeText.text = "0" + date.getHours() + ":" + date.getMinutes(); 
}else{ 
s.timeText.text = date.getHours() + ":" + date.getMinutes(); 


s.dateText.text = date.getMonth() + 1 + "月" + date.getDate() + "日"; 
}) 
}; 
BootPage.prototype.addSlider = function(bitmapdata){ 
var s = this; 
s.addChild(s.sliderLayer); 
s.sliderLayer.graphics.drawRect(0,"",[0,iosShape.getScreenHeight()-100,iOSShape.getScreenWidth(),100],true,"black"); 
s.sliderLayer.alpha = 0.3; 
//加入滑塊框層 
var barBorder = new LSprite(); 
barBorder.x = 35; 
barBorder.y = iOSShape.getScreenHeight()-70; 
s.addChild(barBorder); 
//加入滑塊說明文字 
var moveBarCommont = new LTextFIEld(); 
moveBarCommont.size = 12; 
moveBarCommont.x = 80; 
moveBarCommont.y = 10; 
moveBarCommont.color = "white"; 
moveBarCommont.text = "Slide to unlock."; 
barBorder.addChild(moveBarCommont); 
//加入滑塊層 
var bar = new LSprite(); 
bar.x = 35; 
bar.y = iOSShape.getScreenHeight()-70; 
bar.canMoveBar = false; 
//加入鼠標點擊和鼠標移動事件 
bar.addEventListener(LMouseEvent.MOUSE_DOWN,function(event,s){ 
s.canMoveBar = true; 
}); 
bar.addEventListener(LMouseEvent.MOUSE_UP,function(event,s){ 
LTweenLite.to(bar,0.5,{ 
x:35, 
onComplete:function(s){ 
s.canMoveBar = false; 

}); 
s.canMoveBar = false; 
}); 
s.addChild(bar); 
bar.addEventListener(LMouseEvent.MOUSE_OUT,function(event,s){ 
LTweenLite.to(bar,0.5,{ 
x:35, 
onComplete:function(s){ 
s.canMoveBar = false; 

}); 
s.canMoveBar = false; 
}); 
s.addEventListener(LMouseEvent.MOUSE_MOVE,function(event){ 
if(bar.canMoveBar == true){ 
bar.x = event.offsetX - 70; 
if(bar.x > 215){bar.x = 215;} 
if(bar.x < 35){bar.x = 35;} 

}); 
s.addChild(bar); 
//畫出滑塊框 
barBorder.graphics.drawRoundRect(2,"#191818",[0,0,250,40,5],true,"black"); 
barBorder.alpha = 0.7; 
//畫出滑塊 
bar.graphics.drawRoundRect(2,"dimgray",[0,0,70,40,5],true,"lightgray"); 
bar.alpha = 0.7; 
}; 
 


由於本次是偶自娛自樂,所以代碼就不多講了,只講一下Shape.js和BootPage.js的用途。Shape.js是用來繪畫我們iphone手機外殼用的類,而BootPage.js是開機界面的類。兩者的功能不同,相當於Shape.js用來處理硬件外觀,BootPage.JS用來處理顯示。 
其他的就留個大家自己看吧。雖然代碼有點長,但是都不帶邏輯性。慢慢讀就Ok!當然,讀不懂的同學可能是沒有了解過lufylegend,以下是引擎官方的網站: 
http://lufylegend.com/lufylegend 
引擎API文檔: 
http://lufylegend.com/lufylegend/api 
覺得用CSDN博客閱讀代碼有些困難的同學,不仿用你的編輯器打開源代碼看看,源代碼下載地址如下:
http://files.cnblogs.com/yorhom/iphone01.rar

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved