[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[x3d-public] Re: [www-vrml] Walking Kamala
>Joe D Williams wrote:
Dave A wished
Ultimately, I'd love to be able to code X3D the way I do javascript.
Namely, just 'include' (or 'import' whatever) the file, and be able to
access its contents at-will, just like javascript.
you can, all you gotta do is define the interfaces.
if you bring something into your runtime that you wish to interact
with, you must know the interfaces in advance.
Thus, you must declare them.
But when importint Javascript, I don't have to define anything. I like
that A LOT.
ex:
In a file called scene.html:
<SCRIPT SRC="Flux.js" language="JavaScript"></SCRIPT>
I can edit Flux.js to my heart's content, and I don't have to worry about
syncing declarations in scene.html (except where key interfaces may
change).
what is in the ,js file for the html? (language="JavaScript"is not used,
try text/javascript for html)
if you reference nodes, by name, then you will need to keep track.
Of course you won't need to declare variables if everything is global.
And who is confused about when scripts should be able to talk
to each other?
However, except for the things that are different, it is the same.
I can just add functions to Flux.js and just use them in scene.html (or
any other such included external script). MAN is that handy!
As t should be for simple stuff.
I cannot do this with X3D (let alone the whole issue of one x3d script
'knowing' about another, or any concept of 'global' variables or
functions, my God what I wouldn't give, but that's a whole other
discussion).
if you can handle javascript for DOM, then you can handle
ecmascript for SAI.
I understand for whatever security and propriety reasons the need to
'hide' content, and
Agan, this sounds great to get working for author time,
but for run-time, along this path lies madness.
Such a file would/could be 'imported' and just used as if it had been
there all along, just like javascript does. Wouldn't that be nice?
Except for the runtime 'export all' and its mate default 'import all'
I would say again, please speak to your boss. X3D has included
in the standard a definition of how to define the Inline interfaces
you wish to expose. That is EXPORT. Also, you get to match
these up with interfaces in the containing scene. That is IMPORT,
There are all sorts of things you can do with this. One thing you
cannot do is skip declaring the interfaces. Really, give the run-time
a break and do your programmer thing and list them interfaces.
As an programmer, I understand. But as an author, and one who'd like to
see much greater acceptance of X3D in the world, having to declare things
in two or more places is just plain unmanageable.
Two or more? Sorry, the answer is zero to as many as necessary.
Really, if you are having a problem in keeping track of this
kind of stuff, then you must change the way you do it for your
customer's sake. Try drawing pictures with blocks and lines
and some sort of annotation showing event flows.
Show an example that really causes you a problem.
Get some consistency in the basic input, maybe.
I am currently on my 3rd commercial site
care to show any links?
where such things get in the way all the time. In each case, the desire is
minimal to no need to know anything special about X3D.
or html or flash, or any authoring, probably ... ...
They just want to export models (from Max or Maya or whatever), and have
them inserted into scenes.
Historically, these may be complex models but they should work.
Usually, they can be greatly editied for web use.
Probably many simpifying features of X3D are not used.
In 90% of these cases you can improve the things a lot if
you can read the code and use a text editor.
As it is, this means me writing a server-side X3D parser for them, and
maintain it.
What does that have to do with you problem? It does not
seem to me to be a great idea to generate externprotos
on the fly from the server. .
Time and money. If they can't afford that, there is little recourse.
Import would help, but only if, again, there were no need for a third tool
(server side in my case) to manage syncing the interfaces.
I'm still not sure how this would be any different in your html
example. If the node you import does not have the same interface
names as the node it is replacing it with, then you will need to
change your containing scene interfaces.
As for giving the run-time a break: I'm inching ever more (and cautiously)
toward 'screw the run time' (I have friends that do runtime, nothing
personal), but the effort they are saving by not implementing such
conveniences reflects in HUGE amounts of time, especially when added up
across all the people who are working on things like this, or would, if it
weren't so labor-intensive. I see little benefit in using X3D as a
run-time format, other than it's an open standard, if I have to do all the
work myself.
Sorry, I'm missing you naming some sort of alternative tool that will
give you the conveniences you seek.
Instead of writing X3D tools, I might as well dump out OpenGl.
Sorry, I'm missing how this will solve your problem.
Where will you dump it to and what tool will work with it?
For instance, there is no load sensor in ogl.
The runtime, IMHO, exists to make it easy to do 3D on the web.
Yes. As easy as is possible.
Where if falls short, I make noise, but with love, like a parent yelling
at those damn kids to not play on the freeway.
Maybe check your browser of choice to make sure it is
working as expected. Somtimes a simple bug, like a missing
interface, makes it harder than it should be.
Not to have to sync proto/externproto headers? To be able to get at
whatever you need/want from another file?
if you stay with XML, then you can do this at author time, and to a
certain extent from a live browser window.
Any examples handy?
When i said that i was thinking of client-side script and xml
transformation and processing tools,
>> Anywho, just as putting a loadsensor on an Inline does NOT tell you
when all of the Inline's contents are loaded (just the inline itself,
but wouldn't THAT be nice too!?),
You must sense the state where it can be sensed.
I would live with an extern/imported
file being able to be load-sensed, such that I could know when that's
'in'
Try this out. Figure out a way for the proto or inline or script to tell
you its
state before it is completely loaded and running.
I'm not asking for the incoming content (Inline, proto) to tell me
progress (I do this with externproto's firing of a 'loaded' event, which
is hacky, but hey).
Deep down, what other choice is there?
If you had another choice, why would you use it?
What I'm asking for is the BROWSER to tell me the progress of the
downloading of incoming externproto!
how can the browser know if the proto doesn't know?
In fact, Flux does put this progress on the status bar, so I know the data
is available.
Please consult with the manufacturer concerning the actual
meaning of the built-in status/progress bar.
Google may be your friend on this because percent loaded is
requested for everything. How do classA html browsers do it?
It just needs to get to the scene and/or SAI API's somehow. Then I can
make a REAL progress bar. Data point: some of my extern protos have over
400,000 polys and are 2 megs in file size (gzipped). Not small. And I may
be loading several of them. I need better progress reporting!
Again, most all of those can be improved using some tools for X3D
and a text editor. Getting consistent input that fits into your scene
in a consistent way may be the best choice
I agree that anything with a url should be able to be load sensed.
What happens when you load sense the url for an inline?
If I have a url in an inline, and the inline is otherwise loaded
and running except for some textures, then I could export
a report from a loadsensor in the inline, or figure out what to
do in the inline and report something.
That is, if IMPORT/EXPORT is working.
However, since the proto or inline or script is completely able to
report its status when it is loaded and running, I may not use
loadsensing anyway. I may want a report from the logic itself,
not logic that is watching the url.
I'm sensing Inline loading just fine with Flux (although it would be SUPER
nice if it could automatically keep track of any other assets that Inline
might call, such as other Inlines or textures, sounds, etc. and include
that in it's percent complete). As it is, I have a hybrid scheme, where I
give 'percent downloaded' on Inines and 'unknown til loaded' on
ExternProtos.
How is it that you are able to achieve percent loaded on inlines
but not for protos? I can understand some special cases, but
not the general case. How are the probems different?
How can you keep detailed track of things in the 'might call'
category any better in the Browser than in the inline or proto.
if this is important, you build reporting into the inline or proto
and tell it to the containing scene as soon as you can.
Cheers
Dave A
Thanks and Best, Regards,
Joe
Anyway, it sounds like two big issues, both very common in
content creation and publishing. Now you know the problems
and understand what the browser can or at least is supposed to
do, maybe you can make some headway and maybe even
formulate a comment against the standard.
Best Regards,
Joe
-------------------------------------------------------------------------
for list subscription/unsubscription,
go to http://www.web3d.org/cgi-bin/public_list_signup/lwgate/listsavail.html