|
So, given that there has been a considerable amount of discussion
(and pontificating from me) about the best way to get a response
from DIRECT-L I have decided to post my own process.
This is how I try to figure out what the heck is
wrong with my code, and also how to approach new concepts, before
I post to DIRECT-L. As well. there are some tips on how to make
your post as efficient as possible so that people will be able to
answer your question...or at least read it.
Step 1: Check your code.
So, you have some code that isn't working properly
and its driving you insane.
The first thing you should do is look at your code
to make sure that you're not doing something stupid. Everyone does
things that they are ultimately embarrassed about (heck last week
I spent two days trying to fix a problem caused by not including
the "me" keyword in a method call...so it happens to everyone)
so check your code to make sure that its actually doing what you
think its supposed to.
Common screw ups:
- Not making variables global.
- Making variables global (In the message window
type showglobals and see if the variable is there)
- Not puppeting sprite.
- Not unpuppeting sprites.(In the message window
or the watcher type the puppet of sprite x use put
in the message window)
- Not passing the correct variable to a handler
- Forgetting me in an objects method
- Forgetting the objectRef
- Not making a script a parent script
The easiest way to check these things is to use
the debugger and the watcher. Step through the code and make sure
that the assumptions you are making about the code are true. Are
the variables holding the correct data? Are variables even being
declared? Is the code branching the right way?
Now, if you haven't been using the debugger and
the watcher , then start. They are easily the most valuable tools
in Director. Both of these tools can help you examine what your
code is doing and help to check that your code is ACTUALLY doing
what you want it to.
Step 2: RTFM
Check the Lingo Dictionary and the online help
files to make sure that the lingo code you are using actually does
what you want it to. Sometimes, you may be using Lingo in an inappropriate
manner. Keywords that work on lists and property lists are notorious
for confusing programmers. Check the documentation to ensure that
the Lingo you are using is applicable to the data types and situations
you are using them in.
Sometimes keywords will not generate errors, but
also not work. Just because a piece of code will compile and run
without errors isn't any reason to assume that it is free from errors.
Logical errors are more likely to cause problems than compiler errors.
This is simply because you don’t get immediate feedback from Director
that something is wrong.
While you're reading, look at the "see also"
sections to read about associated Lingo keywords. Perhaps another
keyword might serve your purposes better. Perhaps another keyword
might be the thing you actually want to do. Explore.
Step 3: Net resources.
Stop of at Director
Web and look through the DIRECT-L digests to see if your particular
problem has been discussed before. Also, look in the excellent "Tips
& Scripts" section to see if some code has been posted
that addresses the situation you have. Odds are, the problem you're
having has been discussed before. And if it has, then there is probably
a description of the problem and a fix somewhere in the two above
mentioned references.
Step 4: So you want to post to DIRECT-L
When all else fails, post a message to Direct-L...
Step 5: The subjec
Make the subject informative. Try to distill the
problem into five or six words. If your subject doesn't immediately
answer the question "What is the problem" then rewrite
it or rethink it.
Some problems are a bit more complex and might
not fit into this “five word” rule, but try it first. Subjects like
"sprite puppeting problem", "QuickTime stuttering"
and "soundfadeout problem" are much more useful than "why
won't this work!!!!!!", "urgent!!!!" and "newbie
question".
Don't put the word "newbie" in the subject.
Ever. No-one gives a damn and it takes up space that could have
been used for a more descriptive term like "QuickTime"
or "behaviour". Save the self-denigration for your shrink.
Don't use all caps. Its just rude. Don't use 17 exclamation points
to try and instill a sense of urgency to your post. It just makes
you look like a twit and it doesn't work because most of use couldn't
care....we've all got problems of our own.
Step 5a Subject Topic
In order to help to make DIRECT-L an easier list
to manage it has been suggested that people use the following list
of subject header topics. While their usage is voluntary you may
find that it is easier for people to see your message among the
throng of DIRECT-L posts if you use them.
As well, it is easier to sort and filter mail that
uses these topics. If you use them then others will. And eventually
it is hoped that this will make DIRECT-L a much better list to read
<queue singing birds and sunshine!>.
HELP: Posts
that contain general Director questions. Need to know why your rollover
handler won't work? This is the topic.
LINGO: Messages
about Lingo related topics like "What's the difference between
getProp and getPropAt"?
SCORE: Messages
and questions about using the Score. "Why does the Blend get
set to 0"?
ABSTRACT: OOP
techniques, general programming concepts and the like.
QT: QuickTime and audio/video
related matters.
BUG: Gotta
bug? Want to alert people about one? Want to ask about one
WISH: Hoped for additions
to the next version of Director.
FAQ: The topic
header for FAQ postings to the list. Not for general list mail please.Just
for people to use to filter out FAQ posts if they don't wish to
receive them.
TIP: Tips and
techniques you want to share with others.
JOB: Job offers
and announcements.
SOFTWARE: Using
Director with other apps.For example, how to connect Director to
an Access database.
HARDWARE: Using
Director with external hardware. MIDI anyone?
MACR: Messages about Macromedia.
Thoughts about John Dowdell's writing style.
OT: Off topic
rants, nutty threads about puppets or Harry Noel.
ANNOUNCE: New products,
events or annoying breakPoint announcements.
OS: Comments and questions
about Mac or Windows specific items
XTRA: Messages about Xtra
usage.
MISC: Things
that aren't off topic but just don't fit anywhere else
Thanks to Owen Kelly and Brett Walker for their
ideas and suggestions for the topic list.
Step 6: The content
First off, describe your machine and OS. Some problems
only appear on PCs and under certain blends of Windows and it makes
the process much quicker if you mention this first. Second, describe
what is supposed to happen and what does happen. Include problematic
code samples is possible. If the problem includes external files
then mention that. Describe the file formats. A problem with a WAV
might not happen with an AIF file.
Step 7: Don't expect an answer
So, you posted and you didn't get an answer. The
reasons for this might be; your post got lost in a huge rush of
posts, its getting looked at but people are busy, it just didn't
get read for no particular reason. If needs be, repost the message
but just mention in the first line that you have previously posted
this. Being indignant will not get an answer. Asking why you didn't
get an answer will also not help. Sometimes life is hard and DIRECT-L
is no exception. There is no guarantee of a response to your question
and the sooner you realize that the better off you'll be.
Step 8: Keep working.
After you've posted, keep plugging away at the
problem. I also find it helpful to take a break and work on some
other code. Times are, you are looking at the code too much to see
that the answer is right in front of you and taking a break from
that particular section (heck even going for a coffee is a good
idea) gives you a fresh perspective when you go back to it. Try
rewriting the code. Yes, I'm serious. Copy and paste the original
code into a text member and then rewrite it from scratch. Offer
chocolate to the compiler demons (Toblerone is a favourite).
When I read through the slew of posts that I normally
get I usually look for:
- Things I immediately know the solution to
- Things I've had to fix 103 times beforehand
- Interesting things
- Problems that make me go "Hmmm"
- Stuff I'm working on at the moment
Note, that good subject headers make finding one
of these three very easy.
Posts I immediately avoid:
- Newbie anything.
- Stupid subjects (Why won't this work, Help please (even though its polite), Argh!!!)
- Insolent posts.
- People who assume that they should get an answer
or are indignant that they haven't received one
- Posts that don't have enough information in them.
|