Hi Mark,

I looked at the information you pasted below too, don't worry! It's the document that is "foggy" not you! I've read and re-read it over and over again and I am not 100% sure of what is "supposed" to happen either!

I change the "me" to "the target" and it still doesn't work!

One thing I did was to add the following to ObjectY:MessageY:

put the long name of me & cr & the long name of the target

To dump the names to the the message box, they are Identical so it's not surprising it doesn't work either!

I also played with this:

 put the long name of me into myLongName
 put "MessageY" into myLongName

However, this just assigns "MessageY" to myLongName!

Do you know how I can force it to use the contents of myLongName as a field reference?

Thanks a lot
All the Best
Dave

On 23 Mar 2006, at 12:23, Mark Smith wrote:

Scratch that - sorry, I'd left the 'go cd' line in...taking it out, using 'the target' also fails.

So, to narrow down the problem,

I made a mainstack - stack "mp" with 2 cards. On card 2 there is a field "f1" with the script

on showMessage tm
  beep
  put tm into me
end show message

I then made a substack - stack "mps", with a button, whose script is

on mouseUp
  put "hello" into tm
  send "showMessage tm" to fld "f1" of cd 2 of stack "mp"
end mouseUp

Now, if cd 2 of stack "mp" is the current cd of stack "mp", on clicking the button in stack "mps", I hear a beep, and the word 'hello' appears in fld "f1". So far so good.

However, if cd 1 is the current card of stack "mp", on clicking the button in stack "mps", I hear a beep. I then go to cd 2 of stack "mp", and fld "f1" is empty...

Inserting "put tm" into the showMessage handler in fld "f1", I click, and "hello" appears in the message box, so the parameter is certainly getting there. Then inserting "put the target" into the showMessage handler, I click, and "field "f1"" appears in the message box, but still fld "f1" is empty.

I'm baffled.

Mark


On 23 Mar 2006, at 11:56, Mark Smith wrote:

I just set up a slightly simpler version of what you've described, and got exactly the same results. I then inserted 'go cd 2 of stack "stackMain" into then putMessage handler, just before the 'send to' line, and it works as desired,
so it's definitely a context problem. Checking the docs:
-----
If the currently executing handler is in the script of the object that received the original message, then me is the same as the object whose name is returned by the target function. For example, suppose a button script contains a mouseDown handler. The value of the target function within that mouseDown handler is the same as the name of me: the name of the button.

However, if the mouseDown handler is in the card's script instead of the button's, me is not the same as the object specified by the target. In this case, me is the card, but the target function returns the button's name, because the button is the object that first received the mouseDown message.
----

which to my slightly foggy mind suggests that when explicitly 'send' ing a message to an object from another object (overiding the message path) it might be necessary to use 'the target' rather than 'me'..

so now I've substituted "the target" for "me" in the objects script, and the problem seems to be solved. Does that work for you?

Mark

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to