[Laszlo-dev] new function arguments (e.g. start='either')

Sarah Allen sarah at ultrasaurus.com
Sat Jan 10 08:19:14 PST 2009


It would be great if this were in the reference with the method tag...  
not sure where the javascript syntax goes.   I noticed in the  
javasscript init method there was new "override" syntax... is that  
needed in the tag syntax also?  only required for SWF9 or all runtimes?

Thanks!
Sarah


On Jan 9, 2009, at 10:21 AM, P T Withington wrote:

> [cc-ing Lou, this needs to go in the documentation somewhere...]
>
> This is JS2 syntax for an optional argument with a default value.   
> Means you can dispense with any switch/cascading-if arguments.length  
> bs when defaulting your arguments.  The compiler does all the work  
> for you (and it is free in swf9!)
>
> You can say the exact same thing in LZX:
>
>  <method name="play" arguments="start='either', pause=false,  
> length='end', reset=true">
>
> Note all optional arguments must follow all required arguments.
>
> Also adopted from JS2, if you just want to accept and gather up all  
> the rest of the arguments:
>
>  function foo (required, optional=null, rest...)
>
> the argument `rest` (can be any name) will be bound to a list of  
> arguments 3 - Infinity.  If you have a function that takes variable  
> arguments, you _have_ to make this declaration for swf9 to work.
>
> Finally, you can declare the types of your arguments.  These types  
> are ignored in the JS1 back-ends, but they are enforced in JS2 (swf9).
>
>  function foo (required:String, optional:Boolean=false)
>
> Caution:  You will get a type error, but _only_ if there is not a  
> coercion available.  Hence, passing `null` as the first argument to  
> foo above will cause it to be called with the string "null", not the  
> null value.  If you want a nullable type, you should leave the type  
> undeclared (for now...).
>
> On 2009-01-09, at 13:07EST, Sarah Allen wrote:
>
>> more syntax questions:
>>
>> mediastream.lzx defines a function like this:
>>          function play (start='either', pause=false, length='end',  
>> reset=true)
>>
>> I'm not familiar with that syntax.  Can someone tell me about it  
>> and also let me know the syntax for how to express the same thing  
>> in a method tag?  (or point me to docs)
>>
>> Thanks,
>> Sarah
>



More information about the Laszlo-dev mailing list