Do you want to try this?

Index: ClassCompiler.java
===================================================================
--- ClassCompiler.java  (revision 8481)
+++ ClassCompiler.java  (working copy)
@@ -351,6 +351,11 @@
               }
inits.put(key, ((NodeModel.BindingExpr)value).getExpr());
           } else if (value instanceof Function &&
+                     // Don't output functions that are not in the
+                     // class model as methods -- these are constraint
+                     // support closures that need to be able to be
+                     // replaced in subclasses
+                     classModel.getAttribute(key) &&
                      ((! isstate) ||
                       className.equals(key))) {
             // Methods are just decls.  Except in states, because they


On 2008-03-31, at 09:43 EDT, Henry Minsky wrote:
I guess since constraint methods don't need to call super(), it would be OK for them to be closures. But what about their dependency function/ method?
Does that also need to be a closure instead of a method? Or is that
already just a closure?

On Mon, Mar 31, 2008 at 8:12 AM, P T Withington <[EMAIL PROTECTED]> wrote:

This is because there is a constraint in the base class and then in the instance we are trying to install a new constraint. Either we need to bite the bullet and make instances be classes now, or maybe we should back off and not make the constraint methods be methods, just leave them as closures
so they can be 'overridden' in instances by setting (rather than
subclassing). I'm trying to think what the most expedient change would
be...


On 2008-03-30, at 22:03 EDT, Henry Minsky wrote:

In my checkbox example, when I run it, it gets an error here , about
trying
to set a property on an node which
is the name of an existing method:


ReferenceError: Error #1037: Cannot assign to a method
$lzc$bind_reference
on .$lzc$class_multistatebutton.
 at LzNode/addProperty()[/private/tmp/lzswf9/lzgen35129/LzNode.as:6]
 at LzNode()[/private/tmp/lzswf9/lzgen35129/LzNode.as:60]
 at LzView()[/private/tmp/lzswf9/lzgen35129/LzView.as:6]
 at $lzc$class_basecomponent()[/private/tmp/lzswf9/lzgen15637/$lzc$
class_basecomponent.as:260]
 at $lzc$class_basebutton()[/private/tmp/lzswf9/lzgen15637/$lzc$
class_basebutton.as:153]
at $lzc$class_multistatebutton()[/private/tmp/lzswf9/ lzgen15637/$lzc$
class_multistatebutton.as:67]
 at LzNode/makeChild()[/private/tmp/lzswf9/lzgen35129/LzNode.as:393]
 at

LzInstantiatorClass/makeSomeViews()[/private/tmp/lzswf9/lzgen35129/ LzInstantiatorClass.as:106]
 at

LzInstantiatorClass/checkQ()[/private/tmp/lzswf9/lzgen35129/ LzInstantiatorClass.as:79] at LzEvent/sendEvent()[/private/tmp/lzswf9/lzgen35129/LzEvent.as: 50]
 at

LFCApplication/__idleupdate()[/private/tmp/lzswf9/lzgen35129/ LFCApplication.as:179]
 at

LzIdleKernel$/__update()[/private/tmp/lzswf9/lzgen35129/ LzIdleKernel.as:26] at Function/http://adobe.com/AS3/2006/builtin::apply()<http://adobe.com/AS3/2006/builtin::apply%28%29 >
 at <anonymous>()
 at SetIntervalTimer/onTimer()
 at flash.utils::Timer/_timerDispatch()
 at flash.utils::Timer/tick()



or, another view of the stack trace from fdb :
[SWF] private:tmp:lzswf9:lzgen15637:app.swf - 198,974 bytes after
decompression
(fdb) c
[trace] idle timer period =  14 msecs
[trace] LzCanvas.init called
[trace] dummy LzBrowser getInitArg declared in core/dummyclasses.js
[Fault] exception, information=ReferenceError: Error #1037: Cannot
assign to
a method $lzc$bind_reference on .$lzc$class_multistatebutton.
Fault, addProperty() at LzNode.as:6
6     this[key] = val
(fdb)
(fdb) bt
#0   this = [Object 28590241,

class='$lzc$class_multistatebutton'].LzNode/addProperty(key="$lzc $bind_reference",
val=[Function 28678033, name='Function-701']) at LzNode.as:6
#1   this = [Object 28590241,
class='$lzc$class_multistatebutton'].LzNode(parent=[Object 28616785,
class='$lzc$class_checkbox'], attrs=[Object 28686545, class='Object'],
children=null, instcall=true) at LzNode.as:60
#2   this = [Object 28590241,
class='$lzc$class_multistatebutton'].LzView(parent=[Object 28616785,
class='$lzc$class_checkbox'], attrs=[Object 28686545, class='Object'],
children=null, instcall=true) at LzView.as:6
#3   this = [Object 28590241,

class='$lzc$class_multistatebutton'].$lzc $class_basecomponent(parent=[Object
28616785, class='$lzc$class_checkbox'], attrs=[Object 28686545,
class='Object'], children=null, async=true) at $lzc$
class_basecomponent.as:260
#4   this = [Object 28590241,

class='$lzc$class_multistatebutton'].$lzc $class_basebutton(parent=[Object
28616785, class='$lzc$class_checkbox'], attrs=[Object 28686545,
class='Object'], children=null, async=true) at $lzc$
class_basebutton.as:153
#5   this = [Object 28590241,

class='$lzc$class_multistatebutton'].$lzc $class_multistatebutton(parent=[Object
28616785, class='$lzc$class_checkbox'], attrs=[Object 28686545,
class='Object'], children=null, async=true) at $lzc$
class_multistatebutton.as:67
#6   this = [Object 28616785,
class='$lzc$class_checkbox'].LzNode/makeChild(e=[Object 28686585,
class='Object'], async=true) at LzNode.as:393
#7   this = [Object 28148545,

class='LzInstantiatorClass'].LzInstantiatorClass/ makeSomeViews(cq=[Object
28178297, class='Array'], otime=500 (0x1f4)) at
LzInstantiatorClass.as:106
#8   this = [Object 28148545,
class='LzInstantiatorClass'].LzInstantiatorClass/ checkQ(ignoreme=2060
(0x80c)) at LzInstantiatorClass.as:79
#9 this = [Object 28558689, class='LzEvent'].LzEvent/ sendEvent(sd=2060
(0x80c)) at LzEvent.as:50
#10  this = [Object 27856001,
class='LzApplication'].LFCApplication/__idleupdate(etime=2060 (0x80c))
at
LFCApplication.as:179
#11  this = [Object 28541857,
class='LzIdleKernel$'].LzIdleKernel$/__update() at LzIdleKernel.as: 26

(fdb)




--
Henry Minsky
Software Architect
[EMAIL PROTECTED]





--
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to