Loading Externals the Easy Way |
|
The basic idea is that a separate stack is used to hold the connections to the external(s) you wish to
load, and then putting it into use as a library stack with the start using
command makes the
externals available to the rest of your stacks.
The tip below assumes you have already set the defaultFolder
to the location of where your externals
reside on disk. It will create a stack in memory to hold the externals and load it as a library automatically. Since
it is only in memory, it will disappear when your applications has quit.
on loadAppExternals local tExternals ---------- --> EXTERNALS ---------- put "myExternal.bundle" &cr& "myExternal.dll" into tExternals ---------- --> CREATE EXTERNALS STACK IN MEMORY ---------- if tExternals <> empty then if there is not a stack "myExternals" then reset templateStack set destroyWindow of templateStack to true set destroyStack of templateStack to true set visible of templateStack to false set externals of templateStack to tExternals create stack "myExternals" reset templateStack get defaultStack go stack "myExternals" start using stack "myExternals" set defaultStack to it end if end if end loadAppExternals
The above code is fine if you already know the names of the externals have already set the defaultFolder
to where the externals are. Here's a variation of the loadAppExternals
handler that allows you to pass
in a path to the folder that contains the externals and it will do the rest:
Top example posted 8/11/2005 by Trevor Devore to the Use Revolution Liston loadAppExternals pExternalsFolderPath local tExternals,tCurrDir ---------- --> EXTERNALS ---------- if there is a folder pExternalsFolderPath then put the defaultFolder into tCurrDir set the defaultFolder to pExternalsFolderPath switch (the platform) case "MacOS" put the folders into tExternals break case "Win32" put the files into tExternals break end switch set the defaultFolder to tCurrDir filter tExternals without ".*" -- remove any invisible files/folders end if ---------- --> CREATE EXTERNALS STACK IN MEMORY ---------- if tExternals <> empty then if there is not a stack "myExternals" then reset templateStack set destroyWindow of templateStack to true set destroyStack of templateStack to true set visible of templateStack to false set externals of templateStack to tExternals create stack "myExternals" reset templateStack get defaultStack go stack "myExternals" start using stack "myExternals" set defaultStack to it end if end if end loadAppExternals