[Laszlo-dev] ERROR: Attempt to instantiate <foo>, which has not been defined

P T Withington ptw at pobox.com
Wed Dec 31 10:33:23 PST 2008


I think we converted everything, but we didn't do video or things in  
the incubator.

On 2008-12-31, at 12:30EST, Sarah Allen wrote:

> The a/v extensions are written this way (I didn't write them).   
> Their setters aren't being called which make the test files not  
> work.  I was trying to isolate why the setter wasn't called, so I  
> wrote that test file.  Max worked around the bug we were seeing this  
> morning in the change I approved earlier.  We figured the best thing  
> is to refactor all of the a/v extensions with LZX syntax as they  
> used to be.
> Is there anywhere else that private internal protocol is used? If  
> so, there may be other bugs as a result of those changes.
>
> Thanks,
> Sarah
>
> P T Withington wrote:
>> The private internal protocol for translating an LZX class to a JS  
>> class has changed (to accomodate the new runtimes).  Your test case  
>> is out of date.
>>
>> Is there some compelling reason that you are not just writing your  
>> class as a class?  That would avoid a lot of trouble.
>>
>> On 2008-12-31, at 10:13EST, Sarah Allen wrote:
>>
>>> I was trying to isolate a bug where the type setter wasn't being  
>>> called for videoview with the test file below.  The dynamic class/ 
>>> interface stuff is new for me.  Can someone tell me what I did  
>>> wrong?
>>>
>>> I get this runtime error in the debugger:
>>>    ERROR: Attempt to instantiate <foo>, which has not been defined
>>>
>>> <canvas><interface name="foo" extends="view">       <!--- Protocol  
>>> "rtmp" or "http". Default: http. -->       <attribute name="type"  
>>> value="http" type="string"/></interface><switch>   <when  
>>> runtime="dhtml">       <!-- no support for foo in DHTML runtime -- 
>>> > </when>   <otherwise>     <script when="immediate"><! 
>>> [CDATA[       // Classes that implement an interface must obey the  
>>> LZX       // tag->class mapping convention       dynamic class $lzc 
>>> $class_foo extends LzView {         // Next two are part of the  
>>> required LFC tag class protocol           static var tagname =  
>>> 'foo';           static var attributes = new  
>>> LzInheritedHash(LzView.attributes);           static var uid =  
>>> 0;        function $lzc$class_foo(parent, attrs, children, async)  
>>> {               super(parent, attrs, children, async);           }  
>>> override function init()  
>>> {               super.init();               if (this.debug)  
>>> {                   if ($debug)  
>>> Debug.write("foo.init()"); }        }         function $lzc 
>>> $set_type(newtype) { Debug.write("videoview setType", newtype,  
>>> "old", this['type'], "isinited", this.isinited, "stream",  
>>> this['stream']);               //if (newtype == undefined) newtype  
>>> = 'http';               this.type = newtype;               // 
>>> Debug.write('type', this.type); // _setType called before init or  
>>> stream is define, so tip-toe. if (this['stream'])  
>>> {                   this.stream.setAttribute("type",  
>>> newtype);               }           }       }         ]]></script>  
>>> </otherwise> </switch><foo/></canvas>
>>
>



More information about the Laszlo-dev mailing list