I think I could write a manager class if someone shows me code to load a library in javascript. A manager class uses an ID in the global namespace and keeps track of things. In this case, i could take a list of all the keys in the lz namespace, and if you used the manager to load, i could diff the init-list and the now-list to get a list of classes that belong to an import of a given name. it could then be removed by that given name and then the next import could occur like a state machine.

I'd be interested if it was important to good design, i mean. Is it? i'm really asking.

Henry Minsky wrote:
Unfortunately, we never designed any mechanism for un-loading a library.


If it's a question of destroying all the classes that were created
when the library loaded,
you'd have to make sure all instances that use those classes are also
deleted. It might be that we could make the compiler or runtime help out keeping
track of these instances somehow.





On Tue, Dec 22, 2009 at 6:47 PM, Jonathan Shinn <[email protected] <mailto:[email protected]>> wrote:

    Hello everyone,
I'm struggling with the code below. When compiled to swf8, the
    library will load and unload repeatedly, but will provide the
    following error message:
    "ERROR: Redefining $lzc$class_helloworld from <helloworld> to
    <helloworld> ".
When compiled to swf9 or swf10, the library will load and unload
    the first time, but fails to load on later attempts. No error
    message is provided in these runtimes.
I'm finding the information on deleting imported libraries in
    Chapter 15 of the developer's guide to be a bit hard to follow and
    no actual coded example is given, so I imagine that I'm simply
    missing some step. Can someone tell me what I'm doing wrong here?
Thanks,
    Jonathan
***********************************************************
    <canvas width="100%" height="600" proxied="false">
        <attribute name="lib"/>
        <button text="Load helloworld library"
    onclick="helloworldimport.load()" />
        <button x="150" text="Unload helloworld library"
    onclick="canvas.lib.destroy();helloworldimport.unload()"/>
<import name="helloworldimport" href="helloworldimport.lzx"
    stage="deferred" />
<handler name="onload" reference="helloworldimport">
              Debug.write("helloworld imported!");
              canvas.lib = new lz.helloworld(canvas, {'x': 40, 'y': 50});
         </handler>
</canvas>
    *******************************************
    <library>
<class name="helloworld" extends="view" width="150" height="150"
    bgcolor="#ccaaee">
<text fontsize="40" align="center" valign="middle"
    text="Hello" />
</class> </library>
    *******************************************************



--
Henry Minsky
Software Architect
[email protected] <mailto:[email protected]>


Reply via email to