This will still crash in certain cases.
Because a stack with its cantmodify set to true and which buffered
state is not true, cannot be forced to update its screenbuffer.
The effectiveness of a screen buffer update can be seen in the
difference between the pixmapID of a stack and the windowID of a
stack. If those numbers are the same the stack is NOT buffered and
the handler will crash gloriously.
Greetings,
Wouter
On 04 Feb 2006, at 00:07, Richard Gaskin wrote:
Works great in your version.
I double-checked the differences between your code and the code on
Ken's site, and I found that if I just move the line that restores
the alwaysBuffer of the stack to after the export, it works:
on mouseUp
put "/Applications/MetaCard/_testers/export wd buffer.rev" into
tStack
put "/Users/richardgaskin/Desktop/stackimage.png" into tPath
put "PNG" into tType
ExportCard tStack, tPath, tType
end mouseUp
on ExportCard pStackPath,pExportPath,pImageType
-- pStackPath is the path to the stack whose card you want to export
-- pExportPath is where you want the image to go
-- pImageType is one of the three formats supported by the export
-- command: paint, png or jpeg
put the alwaysBuffer of stack pStackPath into tOldBuffer
-- The next two lines force the current card image
-- into the offscreen buffer
set the alwaysBuffer of stack pStackPath to false
set the alwaysBuffer of stack pStackPath to true
create invisible image
-- Here's the 'meat' of the handler:
set the imagePixMapID of last image to \
(the pixMapID of stack pStackPath)
select last image
--!NOT HERE set the alwaysBuffer of stack pStackPath to tOldBuffer
do "export" && pImageType && "to file pExportPath"
delete last image
-- HERE INSTEAD:
set the alwaysBuffer of stack pStackPath to tOldBuffer
choose browse tool
end ExportCard
--
Richard Gaskin
Fourth World Media Corporation
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution