[Laszlo-user] Deleting imported libraries clarification

Cary Clark caclark at cox.net
Sun Jul 13 19:58:57 PDT 2008


I've put some optional code of my app into a dynamic library.  When an 
instance of one of the classes is needed, I do a load on the library and 
create the instance after the onload() handler.  I've been reading the 
Software Engineer's Guide, aka Developer's Guide, in 15.5 "Deleting 
Imported Libraries".  It's pretty short, so I'll include it here:


    5. Deleting Imported Libraries

To 'unload' an imported library, three things have to be done:

   1.

      Destroy all the instances that were created by the library. This
      is done by calling |iii.destroy();| for each instance |iii|. Note
      that if you have created references to the instance outside of the
      library, you must delete those references.

   2.

      Destroy all classes that were created by the snippet. This is done
      by calling |ccc.destroy();| for each class |ccc|. Note that if you
      have created references to the class outside of the library, you
      must delete those references.

   3.

      Unload the library. This is done by calling |sss.unload()`| where
      |sss| is the name of the library (in the import tag).

-----------------------------------------
I have run destroy() on the instances of the classes from the imported 
library.

I'm not being successful on step 2.  I'm running OL 4.0.12 and tried 
lz['employeeMaintenanceWindow'].destroy() but get the dreaded "ERROR 
@vr.lzx#600: call to undefined method 'destroy'".  I can write to the 
debug console the class name and reference:

global class  employeeMaintenanceWindow  is «¡¿Class?!#12| 
lz.employeeMaintenanceWindow».

I am able to do step 3 and run the unload() of the library using the 
name from the import.  However, when I run code that needs a class from 
the library and I load() it again, I get these warnings:

snippetLoaded loadmc= «LoadObj#2| undefined (loading)» 
«LzLibraryLoader#18| undefined (loading)»
WARNING: Redefining tag employeeMaintenanceWindow from 
lz.employeeMaintenanceWindow to employeeMaintenanceWindow
INFO: The global `employeeMaintenanceWindow` is already defined.  To 
dynamically create a <employeeMaintenanceWindow> element, you will have 
to use `lz.employeeMaintenanceWindow`.

What's the syntax that I should use to remove the global class 
definition?  Or is it still a requirement to do that?...or am I just 
misunderstanding something...

Thanks,
Cary



More information about the Laszlo-user mailing list