egret文件夹
❶ 怎么将网页打包成桌面应用(web前端页面
在 HTML5的崛起、javaScript要一统天下之际,有一个名为【跨平台】的技术越来越火。为什么会这么火?因为软件开发者只需一次编写程序,即可在 Windows、Linux、Mac、IOS、Android 等平台运行,大大降低了程序员的工作量,也使公司的产品可以快读迭代。曾经跨平台技术的不被看好,如今随着手机、电脑硬件的发展而快速发展。这一切,几乎由HTML5技术推动,当然,JavaScript 这个语言,是最大的功臣。
基于 HTML5 的跨平台技术比较出名的有 PhoneGap、Cordova,常常用于开发 webapp;还有 Egret、Cocos-creator、Unity 等,常用于开发游戏;还有基于 Node.js 的 nw.js,用于开发桌面应用,以及 Electron,一款比 nw.js 还强大的用网页技术来开发桌面应用的神器。
其实,以上都是废话,现在进入主题:怎么用 Electron 将网页打包成 exe 可执行文件!
假设:
1、你已经安装并配置好了 node.js (全局安装)
2、你已经用 npm 安装了 electron (全局安装)
3、你已经写好了前端网页(html、css、javascript 这些,或者基于这些的前端框架写好的网页)
4、以上三点看不懂的,赶紧去网络。。。
你如果具备了以上的假设,请继续往下看:
1、找到你的前端网页项目文件夹,新建 package.json、main.js、index.html 三个文件(注:其中的 index.html 是你的网页首页)
你的项目目录/
├── package.json
├── main.js
└── index.html
2、在 package.json 中添加如下内容
{
"name" : "app-name",
"version" : "0.1.0",
"main" : "main.js"}
3、在 main.js 中添加下面的内容,这个 main.js 文件就是上面 package.json 中的 "main"键 的值,所以可根据需要修改
const {app, BrowserWindow} = require('electron')const path = require('path')const url = require('url')// Keep a global reference of the window object, if you don't, the window will// be closed automatically when the JavaScript object is garbage collected.let winfunction createWindow () {
// Create the browser window.
win = new BrowserWindow({width: 800, height: 600})
// and load the index.html of the app.
win.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}))
// Open the DevTools.
// win.webContents.openDevTools()
// Emitted when the window is closed.
win.on('closed', () => {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
win = null
})}// This method will be called when Electron has finished// initialization and is ready to create browser windows.// Some APIs can only be used after this event occurs.app.on('ready', createWindow)// Quit when all windows are closed.app.on('window-all-closed', () => {
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit()
}})app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (win === null) {
createWindow()
}})// In this file you can include the rest of your app's specific main process// code. You can also put them in separate files and require them here.
4、如果你的网页首页的文件名不是 “index.html”,那么请在 main.js 中将其中的 'index.html' 修改为你的网页首页名
5、打开 DOS,cd 到你的项目目录(或直接在你的项目目录下空白的地方 shift+鼠标右键,然后点击在此处打开命令窗口,这里看不懂的,唉,网络吧少年)
6、在上一步的 DOS 下,输入npm install electron-packager -g全局安装我们的打包神器
npminstallelectron-packager-g
7、安装好打包神器后,还是在上一步的 DOS 下,输入electron-packager . app --win --out presenterTool --arch=x64 --version 1.4.14 --overwrite --ignore=node_moles 即可开始打包
electron-packager . app --win --out presenterTool --arch=x64
--version 1.4.14 --overwrite --ignore=node_moles
这个命令什么意思?蓝色部分可自行修改:
electron-packager .可执行文件的文件名--win --out打包成的文件夹名--arch=x64位还是32位--version版本号--overwrite --ignore=node_moles
以上是最简单的打包方式,至于怎么修改窗口大小、菜单栏怎么加、怎么调用系统API这些,就给你慢慢去研究Electron了。
如果你打包总是不成功,觉得很烦,同时对扩展功能没什么要求的话,
里面有我已将内容为 hello,world 的 index.html 网页通过 Electron 框架打包为 windows 环境下的桌面应用。
现只需将你的网页前端项目复制到 /resources/app/project 目录下,双击 exe 文件即可以桌面应用的方式运行你的网页。
❷ 有没有把网页转换成可执行文件的网页
在
HTML5的崛起、JavaScript要一统天下之际,有一个名为【跨平台】的技术越来越火。为什么会这么火?因为软件开发者只需一次编写程序,即可在
Windows、Linux、Mac、IOS、Android
等平台运行,大大降低了程序员的工作量,也使公司的产品可以快读迭代。曾经跨平台技术的不被看好,如今随着手机、电脑硬件的发展而快速发展。这一切,几乎由HTML5技术推动,当然,JavaScript
这个语言,是最大的功臣。
以上是最简单的打包方式,至于怎么修改窗口大小、菜单栏怎么加、怎么调用系统API这些,就给你慢慢去研究Electron了。
❸ 如何在第三方库中引用egret的库
一、通过直接修改项目的index.html进行配置
首先在项目libs目录下新建一个puremvc(名字可自定)文件夹,但是不要新建在libs/moles下面。将puremvc文件夹bin目录下的所有文件都拷贝到刚才新建的文件夹下面,然后修改项目的index.html,在<!--other_libs_files_start-->标签之间引入相应的js文件即可。
<script egret="lib" src="libs/puremvc/puremvc-typescript-multicore-1.1.js" src-release="libs/puremvc/puremvc-typescript-multicore-1.1-min.js"></script>
这样就配置好了,但是目前却还是没办法用,因为puremvc编译后的js文件加入了AMD模块规范,在egret项目中无法直接使用,因此需要注掉AMD模块声明部分
puremvc-typescript-multicore-1.1.js和puremvc-typescript-multicore-1.1-min.js都需要注掉AMD模块定义部分,这样就可以使用puremvc库了。
二、标准配置
在项目所在文件夹下,用命令行egret create_lib puremvc创建一个egret库,当然目录路径可以任选,但是最好不要在项目文件夹下创建。将puremvc文件夹bin目录下的所有文件都拷贝到刚才新建的文件夹下的src目录中,修改刚才库文件夹下的package.json,配置如下
<pre name="code" class="html">{
"name": "egret",
"version": "3.2.2",
"moles": [
{
"name": "puremvc",
"description": "puremvc",
"files": [
"puremvc-typescript-multicore-1.1.d.ts",
"puremvc-typescript-multicore-1.1-min.js",
"puremvc-typescript-multicore-1.1.js"
],
"root": "src"
}
]
}
在当前库文件夹下调用egret build编译库,然后修改项目egretProperties.json,moles下增加如下配置
{
"name":"puremvc",
"path":"../puremvc"
}
编译项目即可自动完成配置,要注意的是这里也是要去掉puremvc-typescript-multicore-1.1-min.js和puremvc-typescript-multicore-1.1.js中的AMD模块部分的。
❹ 什么是白鹭引擎
Egret Engine(白鹭引擎)是白鹭时代推出的一款使用TypeScript语言构建的开源免费的移动游戏引擎。通过白鹭引擎,开发者可以快速地创建可以运行在手机App的WebView或者浏览器中的HTML5移动游戏,也可以编译输出成基于Android、iOS、Windows Phone的跨平台原生移动游戏。应用Egret引擎开发HTML5移动游戏,不但能让H5游戏具备牛逼的性能表现,并且效率很高。
❺ egret怎么添加puremvc
说学就学,可是第一步就让我感觉很费事~~(哎~菜鸟当久了)。要开始学,得先下个PureMVC框架装上吧。找了半天PureMVC框架,下载下来后,发现是一个压缩包,大小只有几百K(心存怀疑,怎么这么小呀)。解压之后,根据惯性开始寻找一个类似Setup的东东。狂汗,就是找不到这个东西。这下我认定刚才下错东西了。于是,在网上又是一阵狂搜,结果证明自己没下错。-_-!!!
第二步,开始安装PureMVC。没有setup,怎么装呢?是不是添加引用就可以了呢?可是又该怎么添加呢?(我用得是FlashDevelop这个编辑AS的软件)网上又是一阵狂搜,可搜到的都是谈论PureMVC的架构怎么样或者pureMVC具体应用怎么写,就是没有介绍刚开始该怎么配置的。“最危险的地方就是最安全的地方”,结果在PureMVC的下载页内找到了“Installation ”字样。其中的大概做法,就是解压,然后将“PureMVC_AS3_2_0_4.swc”添加到项目的库中。因为,我用的是FlashDevelop,所以添加方法如下:选中项目的lib文件夹-》右键添加存在的文件-》选择PureMVC_AS3_2_0_4.swc-》右键单击添加进来的这个文件-》选择添加到库中(Add To Library)。这样便可以算前期工作全部结束了。
第三步,查找关于PureMVC的介绍,补一下理论知识。这些东西,网上超多,我就不介绍了。
简单的说,PureMVC源于MVC模式,主要就是Model、View、Controller这三层次。但在PureMVC中上述三个都被封装成了三个核心层,并通过单例模式提供给应用程序。开发人员不需要直接使用这三个核心层。PureMVC为了简化开发复杂度,提供了一个Facade类,该类提供了与核心层通信的唯一接口,可以初始化上述三个核心层,并可以访问它们的public方法,同时该类也是以单例模式提供给应用程序。开发人员只需要继承一个Facade类并创建具体的Facade类就可以实现整个MVC模式。除了知道Facade类之外,还需要了解与三个核心层相辅助的三个类:Proxy、Mediator、Command。
Proxy,可以理解为代理,负责操作数据的存取。
Mediator,可以理解为媒介,负责UI层与控制层之间的沟通。
Command,则是用来操作具体的业务逻辑。
为了对这三个核心层尽量的解耦,PureMVC中采用了消息机制,层与层之间的通信通过发送消息(notification)来实现。消息发送者只需要实现发送,不需要知道谁会接收这些消息。消息接收者如果需要接收消息,只需要注册一下对应的消息就可以了。如:registerCommand(START_UP, StartUpCommand);这句话产意思就是注册了一个对应关系,其中START_UP是消息的名称,StartUpCommand则是一个Command,这样当有人发送了START_UP名称的消息后,就会由StartUpCommand进行处理。
第四步,动手写自己的Demo(在我的这个Demo中,实现功能很简单:记录每次鼠标单击时在X方向上的偏移量)。
1)创建一个新的项目,就叫做 "MyFirstPureMvc”吧。新创建的项目,应该可以看到bin、lib、src这三个文件夹,在src下有一个main.as文件,bin下有一些用于呈现网页的文件(项目中基本不需要用到)。2)在lib文件夹中添加PureMVC_AS3_2_0_4.swc,并添加到库中。
3)在src文件夹中添加三个子文件夹:Model、View、Controller。Model文件中放置MouseClickProxy.as文件。View中放置StageMediator.as文件。Controller中放置StartUpCommand.as和MouseClickCommand.as这两个文件。具体内容,请看下面。
4)在src文件夹中接着添加ApplicationFacade.as文件,名称可以不一样。这个主要是用来继承Facade类的。如果你了解了基本的PureMVC框架结构之后,应该明白Facade这个类的重要性。
package
{
import org.puremvc.as3.patterns.facade.Facade;
import controller.*
/**
* Facade模式来实现统一的接口,对外只提供了startup方法用于启动
* 在该类被创建的时候会自动调用initializeController方法,需要在该方法中对Command进行注册
* 接着,调用startup方法启动(也就是发送一个消息,因为之前已经注册了Command,所以相应的方法会去执行execute进行响应)。
* @author
*/
public class ApplicationFacade extends Facade
{
public static const START_UP:String = "START_UP";
public static const MOUSE_CLICK:String = "MOUSE_CLICK";
public static function getInstance(): ApplicationFacade {
if (instance == null) {
instance = new ApplicationFacade();
}
return instance as ApplicationFacade;
}
public function startup(app:Object):void
{
sendNotification(START_UP, app);
}
override protected function initializeController():void {
super.initializeController();
registerCommand(START_UP, StartUpCommand);
registerCommand(MOUSE_CLICK, MouseClickCommand);
}
}
}
上述语句中的initializeController方法中首先初始化了Controller控制器,并建立了Command与消息之间的映射关系。然后调用startup启动整个程序。在sendNotification中,发送了一个名为START_UP的消息。并传递了一个app对象。
根据注册的关系,StartUpCommand类会接收到这个消息。
在这个类中,主要实现了父类的execute方法。在该方法中注册了一个代理和媒介。这两个东东,在随后的程序运行中需要使用,所以要进行一下注册。注册了之后,接下去如果要使用则直接可以从facade中获取。
接着来看下StageMediator.as,这个东东关系到我们的View视图,与我们可以看得到的UI密切相关。我们在UI上触发的一些事件会由这个StageMediator类接收(并进行简单的封装)后发送给控制层去处理。
在mouseClick事件中,又发送了一个通知,通知的消息为MOUSE_CLICK。另一个是鼠标的单击时的X方向上偏移量。看一下ApplicationFacade类中注册的信息,可以找到与消息对应的类是MouseClickCommand。
在这个类中,就输出了X方向上偏移量。
接下来,你只需要ctrl+enter测试就可以了。
是不是很奇怪,从头到尾都没有用过Model层,是的,这可能是我这个DEMO的缺陷,因为我这个Demo中不需要查询数据库或其它数据存储区来获取或写入数据,因此并没有使用到。
上面的整个过程,只起到一个简单的演示作用。如果大家需要深入学习,建议大家参考网上达人们的文章。
❻ win7如何检验egret引擎安装
下载NodeJS。
进入NodeJS官方网站,直接点击绿色按钮INSTALL下载(会自动检测系统下载对应版本)或者点击红圈内download按钮自己选择版本。
安装NodeJS。
直接打开下载的文件,安装。
测试NodeJS。
安装完毕后可以打开命令行窗口输入命令 node -v 查看是否安装成功。
如图会出现node版本。同时该安装包还会为你安装npm工具。
(node安装成功后会自动配置环境变量PATH,如果node -v 提示错误,大家可以重启机子或者检查一下环境变量的配置)
下载typescript。
Nodejs已经安装了npm工具。大家可以直接用命令安装typescript。
在命令行窗口输入npm install -g typescript。
安装成功后可以输入tsc命令检测。
下载Egret Engine。
大家在官网的产品下载就可以下载到。
下载完毕。解压到指定文件夹。然后运行目录下的install.bat就自动安装了命令行工具。
安装完成。
大家可以输入egret来测试一下。这时应该会看到这个界面。
执行完以上步骤,大家就安装好了Egret,可以用命令来创建编译发布项目。但是还缺少一个可视化的开发工具。
大家可以去WebStorm(Egret官方推荐工具)官网下载安装WebStorm。
最后,大家就可以用WebStorm来开发项目了。
❼ egret map左上角怎么显示信息
放到客户端的DATA文件夹里边才可以.
❽ 如何使用TexturePacker快速导出Egret能用的纹理
TexturePacker可以很方便的制作位图纹理集。同时TexturePacker支持众多格式。
目前TexturePacker官方还没有支持Egret所支持的纹理集格式,但可以为TexturePacket安装插件来支持Egret纹理集导出。
重启TexturePacker后,可以在Data Format选项中看到egret-spritesheet选项。