Paul, Ken, et al,

It's alive!

My icon-changing stack, "Chameleon" is now changing icons on-the-fly.

Chameleon stack script:

local imagePath1,imagePath2,currentLibrary

on openStack
  get the effective fileName of this stack
  set the itemDelimiter to "/"
  put "X2.rev" into item -1 of it
  put it into imagePath1
  put "X3.rev" into item -1 of it
  put it into imagePath2
  start using stack imagePath1
  put imagePath1 into currentLibrary
  refreshButtons
end openStack

on switchLibraries
  set the itemDelimiter to "/"
  get item -1 of currentLibrary
  if it is "x3.rev" then
    stop using stack imagePath2
    close stack imagePath2
    start using stack imagePath1
    put imagePath1 into currentLibrary
   else
    stop using stack imagePath1
    close stack imagePath1
    start using stack imagePath2
    put imagePath2 into currentLibrary
  end if
  send "refreshButtons" to this stack in 1 tick
end switchLibraries

on refreshButtons
  repeat with x = 1 to the number of buttons
    set the icon of button x to (the icon of button x)
  end repeat
end refreshButtons

The key to making this work was sending "refreshButtons" to the stack instead of calling it from the handler that switches the libraries. Also, one must close the previous library [with destroyStack true], not just stop using it.

So all you game builders who want to change the look and difficulty as the user reaches each new level could address that with multiple libraries containing images with the same icon id and handlers with the same name but different logic.

It's gratifying when one's long-term hunch proves to be correct.  :{`)

Rob Cozens CCW
Serendipity Software Company

"And I, which was two fooles, do so grow three;
 Who are a little wise, the best fooles bee."

 from "The Triple Foole" by John Donne (1572-1631)

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to