after change viewer title, run command DOpus.viewers.Update();
but still get nothing
function OnClick(clickData)
{
// --------------------------------------------------------
DOpus.ClearOutput();
// --------------------------------------------------------
var i=0
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v=e.item()
i+=1
v.title="hello " +i
DOpus.Output("viewer title: "+ v.title)
}
DOpus.viewers.Update();
DOpus.Delay(2000);
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v=e.item()
DOpus.Output("title : "+ v.title)
}
}
output is:
viewer title: hello 1
viewer title: hello 2
viewer title: hello 3
title : undefined
title : undefined
title : undefined
function OnClick(clickData) {
DOpus.ClearOutput();
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v = e.item();
DOpus.Output('title : ' + v.title);
}
var i = 0;
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v = e.item();
i += 1;
v.title = 'hello ' + i;
DOpus.Output('viewer title: ' + v.title);
}
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v = e.item();
DOpus.Output('title : ' + v.title);
}
}
and you'll get
title : undefined
viewer title: hello 1
title : hello 1
by the way, is there a way to let viewer remember user-defined comment or info, like this
var i = 0;
for (var e = new Enumerator(DOpus.viewers); !e.atEnd(); e.moveNext()) {
var v = e.item();
i += 1;
v.title = 'hello ' + i;
// add comment to property
v.myComment='this is viewer '+i
// or vars.Set
v.vars.Set('myComment', 'this is viewer '+i)
// or record info in global vars with viewer id as key
var info={ myComment: 'this is viewer '+i}
DOpus.vars.set(v.id , info)
DOpus.Output('viewer title: ' + v.title);
}
Currently i use viewer.title to do this, but it has some bug and can only record string info
thanks