Recipe 7.15. Calling ActionScript Functions from Static Text


Problem

You want to invoke an ActionScript function in the current movie when the user clicks on static text.

Solution

Apply a hyperlink to the text (see Recipe 8.12) in which the URL is in the form of asfunction: actionscriptFunctionName[, param1, parame2…paramN].

Discussion

In addition to all the other kinds of linking you can do with static text fields, you can also link to an ActionScript function using the same basic technique. Select the text to which you wish to apply the link, and then add a value to the URL link field in the form of asfunction:actionscriptFunctionName[, param1, parame2…paramN]. The asfunction protocol tells Flash to invoke an ActionScript function. You should then provide the name of the function to invoke. And if the function should be invoked with parameters, you can optionally provide a list of those values as well. Consider the example in which the ActionScript function is defined as follows:

 function greet(sName:String):Void {   // Assume that tMessage is a dynamic text field on the stage.   // Read Chapter 8 for more details about dynamic text fields. tMessage.text = "Hello, " + sName; } 

You can invoke the greet( ) function from a static text field by applying the following value to the URL link field:

 asfunction:greet,friend. 

In this example, when the user clicks on the static text field, the following message appears in the text field:

 Hello, friend 

The ActionScript function must be defined on the same timeline in which the static text field exists. For example, if you create a static text field in the main timeline and apply a URL link to it of asfunction:greet,friend, the greet( ) function must be defined within the main timeline. If the greet( ) function is defined within another timeline's scope, Flash will not know where to find the function, and nothing will happen when the user clicks on the text.

You can find more information on how to define functions, as well as function scope, in the ActionScript Cookbook (O'Reilly, 2003).





Flash 8 Cookbook
Flash 8 Cookbook (Cookbooks (OReilly))
ISBN: 0596102402
EAN: 2147483647
Year: 2007
Pages: 336
Authors: Joey Lott

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net