1、如何在插件中打开一个文件选择窗口,并获取我所选择文件夹的路径!
2、插件中如何获取到creator项目中assets的路径!(相对路径)
- http://electron.atom.io/docs/api/dialog/#dialogshowopendialogbrowserwindow-options-callback
- 可以通过 Editor.projectPath
1、如何在插件中打开一个文件选择窗口,并获取我所选择文件夹的路径!
Editor.Dialog.openFile({
defaultPath: Editor.projectInfo.path,
properties: ['openDirectory']
})
这个传入参数的文档要看 electron 的官方文档。
http://electron.atom.io/docs/api/dialog/
接口名字都是对应的,一看就知道哪个接口对应 electron 里面哪个 api 嘞
2、插件中如何获取到creator项目中assets的路径!(相对路径)
这个获取相对路径有些麻烦:Editor.projectInfo.path
var Path = require('path');
var relativePath = Path.relative(__dirname, Path.join(Editor.projectInfo.path, 'assets'));
console.log(relativePath);
Editor.projectInfo.path 就是项目目录,和 assets 拼接一下就是 assets 目录。
然后从当前文件的路径相对到 assets 就用 Path.relative
我写了个导入插件,直接导入项目的assets文件夹下,但是creator编辑器下的资源目录没有显示(其实导出的文件实在assets文件夹下生成了),感觉好像creator没有自动生成.meta文件!这个是怎么会事!是不是插件生成之后还需要调用什么借口来生成.meta或者是检查有新资源放入assets文件里!
这个是 bug。你是在 core 层使用 assetDB 的接口生成的把?
这部分接口在 core 层暂时有 bug,你可以尝试直接发送事件,在控制台找到 page 层的接口,看看函数里面用的是什么消息,自己发过去就行了。之后会修复的。。。
或者先暂时在 page 层处理一下这个。
没有我是直接fs.writeFile写进去的!
如果你希望资源显示在资源管理器里,那么需要使用 assetdb 的接口去操作 assets。否则出不来。
现在就是想知道用哪个接口去操作
Editor.Ipc.sendToMain(‘asset-db:create-refresh’);
Editor.asset.refresh都要报错!而且不晓得要传什么参数进去
@Q_Q
直接用fs.writeFile写的,调用什么接口让编辑器去识别显示出来!
请使用以下接口来创建或者导入资源(在 page 层调用):
- 创建资源:
/**
* Create asset in specific url by sending string data to it.
* The created result will be sent through by ipc message `asset-db:assets-created`
* @method create
* @param {string} url
* @param {string} data
* @param {function} cb
* @example
* ```js
* Editor.assetdb.create( 'db://assets/foo/bar/foobar.js', 'var foobar = 0;');
* ```
*/
- 导入资源:
/**
* Import files outside asset-db to specific url folder.
* The import result will be sent through ipc message `asset-db:assets-created`
* @method import
* @param {array} rawfiles - Rawfile path list
* @param {string} destUrl - The url of dest folder, must already existed
* @param {boolean} showProgress - Show progress or not
* @param {function} cb - The callback function
* @example
* ```js
* Editor.assetdb.import( [
* '/file/to/import/01.png',
* '/file/to/import/02.png',
* '/file/to/import/03.png',
* ], 'db://assets/foobar' );
* ```
*/
1.3.2
Editor.assetdb.create( 'db://assets/foo/bar/foobar.js', 'var foobar = 0;');
这种创建.json文件会报错
Editor.assetdb.import
这种方式相当于先生成出文件,再拷贝到cocoCreator中
我需要的是文件直接生成到cocoCreator中,并且能显示出来
我现在的解决方案是fs.writeFile写到cocoCreator中
然后调用
Editor.assetdb.refresh