从construct2插件的目录里可以看到每一个插件都包含一个runtime.js和一个edittime.js;runtime.js负责插件在运行时的表现形式和各种操作;edittime.js负责插件在编辑时的表现形式和各种操作。他们虽然都是一个javascript文件,但是有很大的区别:
runtime.js是由真正的浏览器所带的javascript引擎所解释;而edittime.js则是由Google的V8 javascript引擎来解释,而不是真正的浏览器引擎来解释。
所以Edittime不能使用普通的浏览器特性!
下面是Edittime的一些基本要点和函数:
Edittime全局函数
1. alert(msg): 信息对话框
2. assert2(cnd,msg): 断言cnd为真,否则引发一个错误信息msg。通常用于测试调试。
Edittime回调函数
1. CreateIDEObjectType():创建对象类型时的回调函数.
2. IDEObjectType(): 对象类
3. IDEObjectType.CreateInstance():创建一个实例时被调用。
4. IDEInstance():实例类
5. IDEInstance.OnInserted():插入一个实例到工程时调用
6. IDEInstance.OnDoubleClicked():layout上的一个实例被双击时调用,通常是调用文本编辑或是打开动画编辑器。
7. IDEInstance.OnPropertyChanged(name):一个实例的属性发生改变时调用。
8. IDEInstance.OnRendererInit(renderer):包含该插件实例的layout被打开时被调用。
9. IDEInstance.OnRendererReleased(renderer):包含该插件实例的layout被关闭时被调用。
10. IDEInstance.Draw(renderer):如果是"world"类型插件,则在编辑器中绘出,否则不会被调用.
Edittime实例函数
1. instance.SetSize(size):设置对象的宽度和高度。
2. instance.GetSize():返回对象的宽度和高度。
3. instance.SetHotspot(p):p为cr.vector2数据类型。设置热点。
4. instance.GetBoundingRect():返回一个cr.rect对象的边框矩形。
5. instance.GetBoundingQuad():返回一个cr.quad对象的边框。
6. instance.EditTexture():调用图像编辑器或动画编辑器。
7. instance.GetTexture():返回当前对象的材质。如果pf_animations被定义,则返回第一个动画的第一帧。
8. instance.GetOpacity():返回对象的透明度。
Edittie渲染(rendering)
OnRendererInit, Draw, OnRendererReleased三个函数以一个renderer对象为一个参数,它支持下列方法:
1. renderer.Quad(q[,opacity,uv]):使用当前的材质渲染四边形q(即cr.quad),opacity透明度是选项,uv是一个rect定义的材质。
2. renderer.Line(a,b,color):a和b是cr.vector2类型,color是cr.RGB类型;渲染一根从a到b的color颜色的线。
3. renderer.Fill(q,color):q是cr.quad类型,color是cr.RGB类型;填充一个四边形,颜色为color。
4. renderer.Outline(q,color):q是cr.quad类型,color是cr.RGB类型;用四根颜色为color线来勾出一个四边形的轮廓。
5. renderer.CreateFont(face_name,face_size, bold,italic):创建一个字体对象Font。字体对象Font支持方法
font.DrawText(text,rc,color,halign):text是要绘制的文本;rc是cr.rect对象;color是文本颜色;halign有三种选择(ha_left,ha_center,ha_right)。
6. renderer.ReleaseFont(font):释放创建的字体对象。
7. renderer.LoadTexture(texture):加载对象的材质。通常在OnRendererInit()中使用这个函数。
8. renderer.SetTexture(textture):设置当前绘画用的材质。
9. renderer.ReleaseTexture(textture):释放加载的材质。通常在OnRendererReleased()中使用这个函数。
10. renderer.EnableTiling(enable):是否使用tiling材质。
材质对象Texture支持一下方法:
1. texture.GetImageSize():返回材质像素单位的高度和宽度。返回值是cr.vector2类型。
2. texture.GetFilename():返回当前使用的材质的文件名。
3. texture.GetID:返回材质的Id字符串.