FlightGear的Nasal脚本语言学习笔记

Nasal是FlightGear内建的脚本语言。 它最初是由安迪·罗斯(Andy Ross)为个人项目编写和开发的,于2003年11月被集成到FlightGear中,并且从那时起一直在不断地开发,改进和完善。 随着时间的流逝,它可能已成为FlightGear的最强大功能,并已用于创建各种各样的系统,从野火到控制显示单元。

在FlightGear中,Nasal支持读取和写入内部属性,通过扩展功能访问内部数据,创建GUI对话框等等。注意到Nasal是一种与JavaScript语法类似的脚本语言,但是它能够与FlightGear之间进行双向交互,实现非常强大的功能,这主要是通过CppBind实现的。

创建可点击的面板

FlightGear中创建可点击的面板有两种方法:

  • 热点区域:在某个位置创建可点击表面
  • 拾取:使一整个对象可以被点击

可点击面板的测试

使用“Ctrl+C”可显示所有可点击的面板对象。

属性浏览器

属性树是FlightGear的神经系统,连接着FlightGear的各个子系统,是各个子系统之间交互的桥梁。因此,需要属性浏览器窗口查看各个属性的变化。打开属性浏览器的方式有两种:

  • 通过按键 Ctrl+/ 打开属性浏览器
  • 通过主菜单 Debug > Browse Internal Properties 打开属性浏览器

详细模式

在属性浏览器窗口中,通过按键 Ctrl+. 可用来切换属性浏览器的详细模式(Verbose mode)。在详细模式下,可获得属性的额外信息,例如属性的类型、属性上侦听器的数量等。

参考链接

  1. Nasal scripting language,by flightgear.
  2. Nasal library,by flightgear.
  3. Bindings,by flightgear.
  4. Category:Howto,by flightgear.
  5. Howto:Animate models,by flightgear.
  6. Howto:Make a clickable panel,by flightgear.
  7. Howto:Creating 3D instruments,by flightgear.
  8. Property tree,by flightgear.
  9. PropertyList XML files,by flightgear.
  10. Property browser,by flightgear.
  11. Effect Framework,by flightgear.
  12. Canvas EFIS Framework,by flightgear.
  13. Nasal/CppBind,by flightgear.
  14. Howto:Extend Nasal,by flightgear.
  15. Canvas ND Framework,by flightgear.