Html5實(shí)現(xiàn)iPhone開(kāi)機(jī)界面示例代碼
來(lái)源:易賢網(wǎng) 閱讀:1264 次 日期:2016-07-13 14:27:01
溫馨提示:易賢網(wǎng)小編為您整理了“Html5實(shí)現(xiàn)iPhone開(kāi)機(jī)界面示例代碼”,方便廣大網(wǎng)友查閱!

可以用Html5來(lái)仿照蘋(píng)果操作系統(tǒng)做一個(gè)能在Web平臺(tái)運(yùn)行的ios,今天就先娛樂(lè)一下,先搞一個(gè)開(kāi)機(jī)界面,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助

今天我突發(fā)其想,想到可以用Html5來(lái)仿照蘋(píng)果操作系統(tǒng)做一個(gè)能在Web平臺(tái)運(yùn)行的ios。

當(dāng)然,要開(kāi)發(fā)出一個(gè)操作系統(tǒng),等我再歸山修練一百年再說(shuō)吧。今天就先娛樂(lè)一下,先搞一個(gè)開(kāi)機(jī)界面。

完工后的圖片:

名單

擔(dān)心圖片是被我PS后的同學(xué)可以直接進(jìn)入下面的地址測(cè)試:

http://www.cnblogs.com/yorhom/articles/3163078.html

由于lufylegend封裝得的確不錯(cuò),本次開(kāi)發(fā)還是用該引擎做的。代碼不多,感興趣的朋友可以直接看一下。

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();

//加入開(kāi)機(jī)界面

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":

//畫(huà)外殼

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];

//畫(huà)屏幕

s.screenLayer.graphics.drawRect(0,"black",[s.deviceWidth/10,s.deviceWidth/10,s.deviceWidth*0.8,s.deviceHeight*0.8],true,"white");

//畫(huà)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");

//加入時(shí)間文本區(qū)

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];

//加入日期文本區(qū)

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);

//通過(guò)時(shí)間軸事件更新日期

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;

//加入滑塊框?qū)?/P>

var barBorder = new LSprite();

barBorder.x = 35;

barBorder.y = iosShape.getScreenHeight()-70;

s.addChild(barBorder);

//加入滑塊說(shuō)明文字

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;

//加入鼠標(biāo)點(diǎn)擊和鼠標(biāo)移動(dòng)事件

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);

//畫(huà)出滑塊框

barBorder.graphics.drawRoundRect(2,"#191818",[0,0,250,40,5],true,"black");

barBorder.alpha = 0.7;

//畫(huà)出滑塊

bar.graphics.drawRoundRect(2,"dimgray",[0,0,70,40,5],true,"lightgray");

bar.alpha = 0.7;

};

由于本次是偶自?shī)首詷?lè),所以代碼就不多講了,只講一下Shape.js和BootPage.js的用途。Shape.js是用來(lái)繪畫(huà)我們iphone手機(jī)外殼用的類,而B(niǎo)ootPage.js是開(kāi)機(jī)界面的類。兩者的功能不同,相當(dāng)于Shape.js用來(lái)處理硬件外觀,BootPage.js用來(lái)處理顯示。

其他的就留個(gè)大家自己看吧。雖然代碼有點(diǎn)長(zhǎng),但是都不帶邏輯性。慢慢讀就Ok!當(dāng)然,讀不懂的同學(xué)可能是沒(méi)有了解過(guò)lufylegend,以下是引擎官方的網(wǎng)站:

http://lufylegend.com/lufylegend

引擎API文檔:

http://lufylegend.com/lufylegend/api

覺(jué)得用CSDN博客閱讀代碼有些困難的同學(xué),不仿用你的編輯器打開(kāi)源代碼看看,源代碼下載地址如下:

http://files.cnblogs.com/yorhom/iphone01.rar

更多信息請(qǐng)查看網(wǎng)頁(yè)制作
易賢網(wǎng)手機(jī)網(wǎng)站地址:Html5實(shí)現(xiàn)iPhone開(kāi)機(jī)界面示例代碼
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀網(wǎng)頁(yè)制作

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)