编辑尝试使用 OOP 在 js 中创建库
Edit trying to make a library in js with OOP
编辑 - 更具体,我根据评论尝试了什么,但它没有达到我的目标
所以我正在尝试为 ModPE 脚本编写者创建一个 Gui 库。而不是他们全部输入,我希望它被预定义并在类中组织。所以我做了所有的思考和解决,他们可以更轻松地创建 GUI 模组。我修复并尝试了...
var ctx = com.mojang.minecraftpe.MainActivity.currentMainActivity.get();
function newLevel()
{
ctx.runOnUiThread(new java.lang.Runnable() {
run: function()
{
try
{
var PopupsAndLayouts = {
PopupWindow: new android.widget.PopupWindow(ctx),
LinearLayout: new android.widget.LinearLayout(ctx),
Button: new android.widget.Button(ctx);
wrapContect: android.widget.LinearLayout.LayoutParams.WRAP_CONTENT;
fillParent: android.widget.LinearLayout.LayoutParams.FILL_PARENT;
leftTopCorner: [ctx.getWindow().getDecorView(), android.view.Gravity.TOP | android.view.Gravity.LEFT, 0, 0]
};
var myWindow = PopupsAndLayouts.PopupWindow;
var myLayout = PopupsAndLayouts.LinearLayout;
var myButton = PopupsAndLayouts.Button;
myLayout.addView(myButton);
myWindow.setContentView(myLayout);
myWindow.setHeight(wrapContent);
myWindow.setWidth(wrapContent);
myWindow.showAtLocation(leftTopCorner);
//Then they add more widgets or set their script
}
catch (libError)
{
print(error);
}
}
});
}
但它行不通。关键是有组织的类,所以而不是他们必须知道 var myButton = new android.widget.Button(ctx); 或 var myLayout = new android.widget.LinearLayout(ctx);
他们只是输入 var myLayout = Layouts.LinearLayout; 或 var myButton = Widgets.Buttons.Button;
我该怎么做?我迷路了,想建立这个图书馆有什么想法吗?
GridLayout呢?虽然只是一般的,但不是OOP明智。
对于 GridLayout,你可以这样做
var ctx = com.mojang.minecraftpe.MainActivity.currentMainActivity.get();
function newLevel()
{
ctx.runOnUiThread(new java.lang.Runnable() {
run: function()
{
try
{
var l = new android.widget.GridLayout(ctx);
var b1 = new android.widget.Button(ctx);
var b2 = new android.widget.Button(ctx);
var b3 = new android.widget.Button(ctx);
var ba = [b1, b2, b3];
for (int i = 0; i < ba.length; i++)
{
bl.addView(ba[i]);
}
var p = new android.widget.PopupWindow(l, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
p.showAtLocation(ctx.getWindow().getDecorView(), android.view.Gravity.CENTER | android.view.Gravity.CENTER, 0, 0);
}
catch (defaultError)
{
print(defaultError);
}
});
}
for 循环提供了灵活性,但如果您不想这样做,那么您可以做的只是添加它们,例如......
l.addView(b1, b2, b3);
这个外观更像是javascript...但我不知道OOP,所以我不能说我有正确的答案。
var PopupsAndLayouts = {
PopupWindow: new android.widget.PopupWindow(ctx),
LinearLayout: new android.widget.LinearLayout(ctx),
Button: new android.widget.Button(ctx),
wrapContent: android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
fillParent: android.widget.LinearLayout.LayoutParams.FILL_PARENT,
leftTopCorner: [ctx.getWindow().getDecorView(), android.view.Gravity.TOP | android.view.Gravity.LEFT, 0, 0]
};
相关文章:
- 更改使用Chart.js创建的图表中的轴线颜色
- 为node.js创建一个动态的restful api
- 使用transducer-js和most.js创建一个从Json到streams的管道
- 基本D3.js:创建或更新元素
- 如何使用d3.layout.cloud.js创建一个包含单词及其权重的csv的单词云
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 主干网的生命周期.js创建过程中的视图
- 如何使用条带和节点.js创建费用
- Kinetic.js–创建网格
- Node.js创建一个模块来收集内存(ram)信息
- 使用Sequelize.js创建简单PUT请求时出错
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- JS:创建从索引0开始的所有子字符串的最快方法
- 使用纯JS创建具有id和样式的元素
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何使用Fabric.js创建多个形状
- 如何在没有类属性的情况下使用Rangy.js创建标记
- 关于使用JS创建和附加元素的良好实践
- 如何使用原生JS创建脚本的完整副本
- D3.js-创建一个矩形