Library to Cancel PendingMessages
Sannyasin Brahmanathaswami
brahma at hindu.org
Tue Oct 16 14:25:50 EDT 2018
We anticipate using more and more animation in our app. It is like
Levure in the sense that it is has a lot of "view" module/stacks.
For now I just need to cancel one or two. Which we can very easily do
"locally" -- store the result and cancel on close card.
But I wonder about a global library. Where the messages contained in
"pScope" (all the animation on a given card)
# user will immediately close a card that has animation on progress.
I wonder before I go start reinventing the wheel there, if someone how a
global library for canceling the pending message. The idea is
send "gotoPathIndex" to me in 4 seconds
send "moveTiger" to me in 3 seconds
I started in this but got lost in how to manage 2 dimensional arrays
with with "wild card" in the second dimension. So I just got it
working for one card, for one animation for now
==========
# card script:
on preOpenCard
send "gotoPathIndex" to me in 4 seconds
put the result into pResult
-- put the pendingmessages
-- breakpoint
queueStackMessages "CoverAnimation","closeCardTransition",pResult
end preOpenCard
on closeCard
cancelStackMessages "CoverAnimation", "closeCardTransition"
end closeCard
# stack script: testing, will put in a back script eventually
# queueStackMessages
# Param1: e.g all pending message for a given card animation(s)
# Param2: e.g the name of the message
# Param3: e.g the result--Message ID
local sStackPendingMessagesA
command queueStackMessages pScope,pName,pResult
put pResult into sStackPendingMessagesA[pScope][pName]
end queueStackMessages
# -- cancelMessages
command cancelStackMessages pScope,pDescription,pResult
cancel sStackPendingMessagesA["CoverAnimation"]["closeCardTransition"]
-- if param(2) is empty and param(3) is empty then
-- repeat for each key K in sStackPendingMessagesA
-- end if
-- # oops - got lost in
-- # how cancel all animation in pScope
end cancelStackMessages
two more questions:
1) how to get a "wild card" in an array, or do we need a repeat loop to
thru the keys
cancel sStackPendingMessagesA["CoverAnimation"][*wildCard*]
2) can you cancel a message with its name? I suspect not. We will have
parse the pendingMessages.
3) You always have a global license to say "This is bad architecture.
Why don't you do it like this?"
53428,1539662235.139143,gotoPathIndex,card id 1088 of stack
"/Users/brahmanathaswami/Documents/_Siva-Siva-App/modules/pathtosiva/pathtosiva.livecode"
45657,1539663123.654176,news_Fetch,stack
"/Users/brahmanathaswami/Documents/_Siva-Siva-App/libraries/lib_SivaSiva.livecodescript"
More information about the use-livecode
mailing list