This repository was archived by the owner on Apr 24, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdevelopment_node_Message.html
More file actions
142 lines (106 loc) · 3.74 KB
/
development_node_Message.html
File metadata and controls
142 lines (106 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mobile Widgets</title>
<link rel="stylesheet" href="style/style.css" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
<script type="text/javascript" src="js/StructureElts.js"></script>
<script type="text/javascript" src="js/Structure.js"></script>
<script type="text/javascript" src="js/DocElements.js"></script>
</head>
<body>
<script type="text/javascript">
<!--
idCurrentPage = "development_node_Message";
beginPage();
//-->
</script>
<h1 class="title">Message node</h1>
<script type="text/javascript">
<!--
addIndex();
//-->
</script>
<script type="text/javascript">addTitle("Interface", 1);</script>
<textarea wrap="off" readonly="readonly" rows="5" cols="80">
Message {
MFString url []
MFString set_data []
MFString data_changed []
}
</textarea>
<br/>
<script type="text/javascript">addTitle("Description", 1);</script>
<p>
Message nodes allow inter-scene communication using strings.
</p>
<p>
Message nodes using the same <b>url</b> can communicate with each other.<br/>
Message are broadcasted: multiple Message nodes matching the same url will all
receive the messages).<br/>
String arrays messages can be sent using <b>set_data</b> field or by using the
<b>Browser.sendMessage (url, string1, ..., stringN)</b> method (see the [Browser]<!-- Add link with the Javascript browser API -->
API for more details).
</p>
<p>
Receiving data can done by routing <b>data_changed</b> field to a script.
</p>
<br/>
<script type="text/javascript">addTitle("Fields", 1);</script>
<p>
<b>MFString url []</b> :<br/>
The first item of the url defines the string that <a href="development_node_Message.html">Message</a>
nodes must have in common in order to communicate with each other.
</p>
<p>
<b>MFString set_data []</b> :<br/>
When this field is modified, the Message node will broadcast a message
containing all the items of the <b>set_data</b> field.<br/>
Note: Only one message can be sent at a time. Modifying multiple times in the
same Javascript function, the <b>set_data</b> field will only send one message.
<b>Browser.sendMessage()</b> must be used to send multiple message to the same
<b>url</b> in the same Javascript function.
</p>
<p>
<b>MFString data_changed []</b> :<br/>
Will emit a the received message, when a broadcasted message matches the url of
the <a href="development_node_Message.html">Message</a> node.
</p>
<br/>
<script type="text/javascript">addTitle("Example", 1);</script>
<textarea wrap="off" readonly="readonly" rows="15" cols="80">
#VRML V2.0 utf8
# Send a message on scene initialization
# and receive it in the same scene (yes, this is totaly useless !).
# This should print the following message in console:
# > Message received: Hello, world ! with This is great !
DEF message Message { url "MY_KEY" }
DEF script Script {
eventIn MFString messageReceived
url "javascript:
function initialize () {
Browser.sendMessage ('MY_KEY','Hello, world !','This is great !');
}
function messageReceived () {
Browser.print ('Message received: '+messageReceived[0]+' with '+messageReceived[1]);
}
"
}
ROUTE message.data_changed TO script.messageReceived
</textarea>
<br/>
<script type="text/javascript">
<!--
addBackPageNavigator('widgets_development_nodes_ref', '');
//-->
</script>
<script type="text/javascript">
<!--
endPage();
//-->
</script>
</body>
</html>