按下鼠标左键时,我正在尝试在场景中显示标准文本。但是,我遇到路由问题。到目前为止,这是我的X3D代码:
<X3D>
<Scene>
<Viewpoint DEF="VP" position="0 0 .6"/>
<PythonScript DEF="PS" url="test.py"/>
<Shape>
<Text DEF="TXT" string="initial message">
<FontStyle justify='MIDDLE' size='0.02' />
</Text>
</Shape>
<MouseSensor DEF="MS"/>
<ROUTE fromNode="MS" fromField="leftButton" toNode="PS" toField="showText"/>
<ROUTE fromNode="PS" fromField="showText" toNode="TXT" toField="string"/>
</Scene>
</X3D>
Python代码:
from H3DInterface import *
class ShowText(TypedField(MFString, SFBool)):
def __init__(self):
MFString.__init__(self)
self.inactive_txt = 'Press left mousebutton'
self.active_txt = 'Hello World!'
def update(self, event):
if event.getValue() == 1:
return self.active_txt
else:
return self.inactive_txt
showText = ShowText()
这是我收到的警告,但无法解决:
警告:update()的返回值无效 - Python定义的PythonScript_000000000722E320.ShowText类型字段的函数
这对我来说很奇怪,因为text-node有属性字符串,它是base_type MFString。
答案 0 :(得分:0)
必须通过将字符串定义为:
来提供MFStringself.active_txt = ['some string']