Trevor DeVore wrote:
On Dec 7, 2005, at 6:47 AM, Adam wrote:


I am then trying to call that function from the script of a button on the card in the following way:

on mouseUp
  put field "fldItemsToFind" into lItemsToFind
  put field "fldNumItemsAllowed" into lNumItemsAllowed
  fMyFunction(lItemsToFind,lNumItemsAllowed)
end mouseUp

When put it into browse mode and click the button, I get Rev telling me it can't find the handler fMyFunction.


When you call a function you have to put the result of the function into a variable. There are two approaches:

get fMyFunction(lItemsToFind,lNumItemsAllowed)
or
put fMyFunction(lItemsToFind,lNumItemsAllowed) into tResult

The first is the Transcript short hand which puts the result returned from the function into the "it" variable. The second version stores the result in tResult. Another way to call the function is -

put fMyFunction(lItemsToFind,lNumItemsAllowed)

Which would print the result in the Revolution message box when working in the IDE.

What is the scope of handlers in relation to the stack, cards in the stack, and the elements of each card?


Ah the message path. In your example above the function could reside in a number of places and still be called from the button script without using "send" or "call" -

1) The script of the button itself
2) If the button belongs to a group, the script of the group it belongs to.
3) The script of the card the button is on
4) The script of the stack the button is on
5) Any group scripts whose backgroundBehavior is set to true.
6) If the stack that the button is on is a substack of another stack then the script of the main stack (see "mainstack" in the Rev dictionary)
7) Any front or back scripts (see "insert script" in dictionary)
8) Any library stacks (see "start using" in dictionary). This is my favorite place to put scripts that I need anywhere in an application.

I think that covers all of the possibilities. I would definitely check out an article on the message path that Richard Gaskin has written <http://www.fourthworld.com/embassy/articles/ revolution_message_path.html>. The message path is the other Revolution concept that took me a while to grasp when coming from other programming languages like PHP and Flash. Understanding the message path is key to writing libraries and frameworks for use in Rev.


Hi again:

Within my application the fuctions I have written don't return values in that case, if I understand correctly; they should be handlers. How do I define a handler?

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

Reply via email to