On Mar 31, 2015, at 3:14 PM, stgoldb...@aol.com wrote:

> 
> Yes, Devin, in using your script for Macintosh using LC 6.7 and higher:
> 
> set the filename of player 1 to the defaultFolder & "/media/mymovie.mov"
> 
> that appears to let the movie show after the standalone is transferred to 
> other Mac or Windows computers.
> I thank you for pointing that out. However, with that script, I am now unable 
> to see the movie in the stack prior to creating the standalone. 
> Any suggestion for that?  Thanks.
> 
> Stephen Goldberg

Stephen,

Yes, the defaultFolder is, by default, set to the folder where the LiveCode 
engine is located. That means that in standalones the defaultFolder is the 
folder where the .app bundle (on Macs) or .exe file (on Windows) is located. 
However, when working in the IDE the engine is the LiveCode application. Thus, 
in the IDE the defaultFolder is initially the folder containing the LC 
application, something like /Applications on my Mac, or C:\Program 
Files(x86)\RunRev\LiveCode on Windows. That means you need to do something 
different while working in the IDE.

In most of my projects I check the environment before setting the folder path 
for external media resources, similar to this:

  # In the script where I’m setting the filepath of the player (or image) 
object:

  set the filepath of player “myplayer” to mediaFolderPath() & 
“/media/mymovie.mov”

In the stack script I’ll include functions like this:

  function mediaFolderPath
    put the environment into tEnv
    if tEnv is “development” then
      return enclosingFolder()
    else if tEnv is “standalone” then
      return the defaultFolder
    else if tEnv is “mobile” then
      return specialFolderPath(“engine”)
    end if
  end mediaFolderPath

  function enclosingFolder
    set the itemDelimiter to “/“
    return item 1 to -2 of the effective filename of this stack
  end enclosingFolder

There is one interesting wrinkle with setting the defaultFolder on Mac OS X 
that allows you to “hide” your media assets inside the .app bundle. If you 
choose to set the defaultFolder to enclosingFolder() in the standalone 
environment, the defaultFolder will be the ApplicationName.app/Contents/MacOS 
folder *inside* the .app bundle. If you choose NOT to set the defaultFolder in 
the standalone, it will remain, by default, the folder that encloses the .app 
bundle. Of course, if you choose to “hide” your media assets using this 
technique you must be sure to move them into the Contents/MacOS folder at build 
time. This is most easily done by using the Copy Files tab in the Standalone 
Application Settings.

(Some time ago I added a note regarding this "quirk"—I happen to think it’s a 
“feature”—of Mac OS X to the defaultFolder entry in the LC dictionary. You may 
also find that helpful.)

Regards,

Devin

Devin Asay
Office of Digital Humanities
Brigham Young University


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to