[Laszlo-dev] amazon-soap demo

Henry Minsky hqm at alum.mit.edu
Wed Dec 17 19:19:15 PST 2008


In flash 9/10 (actionscript 3), the compiler requires much more strict
type declarations, including
number of arguments to methods, and the data types of those functions.

In addition, if a subclass overrides a method in a superclass, it's
argument signature must match
in the number and types of the arguments (except for optional arguments).

If you are writing in javascript, you must also explicitly declare a
method as being an override by
saying

override function foo (...)

(In LZX, we do this automatically for you when you define methods on classes)

IN the case of amazon-soap, there is a method named "stop", which
conflicts with the built-in
LzView stop() method, because it has the wrong arguments signature. If
you look at the
amazon/amazon.lzx (non-soap version of the demo) , that method has
been renamed to "stopdrag",
so you should make that change to the amazon-soap demo. You ought to
check against this newer
version of the amazon app for  other things have been
modified to make it compile in swf9 as well.



On Wed, Dec 17, 2008 at 10:02 PM, ono keiji <keiji_ono at net8.co.jp> wrote:
> Today, i have tested with rev.12167, but amazon-soap.lzx said compile error
> with using swf9/10 as following,
>
> org.openlaszlo.sc.CompilerError: amazon.lzx: 581: Error: Incompatible
> override, in line: public override function stop () {
>
> It dose not said with swf8.
> What is the 'public override function' ?
>
> Ono Keiji
>
>
> ono keiji さんは書きました:
>>
>> I am seeing amazon-soap.lzx now. As you know, it dose not work at this
>> time.
>> The one error said the cause of soap.lzx as following method.
>>
>>       <method name="makeProxyStubFunction" args="fn">
>>       <![CDATA[
>>           var stubinfo = this.proxyinfo[fn];
>>           var stubfunc = function (){
>>               var args = arguments.callee.args;
>>               Debug.write( "soap.lzx: arg[1]", arguments[1] );
>>               Debug.write( "soap.lzx: arg[0]" ,arguments[0] );
>>               return LzSOAPService.invoke(
>>                   arguments[1],
>>                   arguments[0],
>>                   args.superclass.requestheaders,
>>                   stubinfo, false, null);
>>           }
>>
>>           return stubfunc;
>>       ]]>
>>       </method>
>>
>> So my question are,
>>    1.Dose 'LzSOAPService' in lzx file is the instance of
>> LZSOAPService.java ?
>>    2.If so, dose LzSOAPService.invoke() is also determined in
>> LZSOAPService.java ?
>>      It has different arguments with the java file.
>>
>> Thank you.
>>
>> Ono Keiji
>>
>> ono keiji さんは書きました:
>>>
>>> Fumm, so next should i check the java sources under ./json/soap ?
>>> I wounder why the second argument did not get executed in the function,
>>> though the first one got in it.
>>> I mean, in the *constant* values
>>>
>>>    value="${canvas.soaptest.makedoc( parent.name, s.text )}"
>>>
>>> 'parent.name' argument had been gotten executed in makedoc(), but
>>> 's.text' had not been.
>>> Could you tell me which the file is doing such converting ?
>>>
>>> Thank you.
>>>
>>> ono keiji
>>>
>>> Henry Minsky さんは書きました:
>>>>
>>>> Oh yes, that's right. Data which is bound in from from a datapath is
>>>> now converted according to the
>>>> attribute type. I don't think that applies to this code test case
>>>> though.
>>>>
>>>>
>>>>
>>>> On Fri, Dec 12, 2008 at 11:20 AM, P T Withington <ptw at pobox.com> wrote:
>>>>>
>>>>> On 2008-12-12, at 10:43EST, Henry Minsky wrote:
>>>>>
>>>>>> The schema data type of an attribute  ( "expression". "string",
>>>>>> "color", etc ) only
>>>>>> affects how the tag compiler compiles *constant* values in the source
>>>>>> code, such as
>>>>>
>>>>> And how data bindings are converted.
>>>>>
>
>



-- 
Henry Minsky
Software Architect
hminsky at laszlosystems.com


More information about the Laszlo-dev mailing list