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]>