Hi Gregory,
-Original Message-
From: use-revolution-boun...@lists.runrev.com [mailto:use-revolution-
Hello Jacques, Jacqueline, Craig, and Jim,
Sadly, it is a bug then. The consequences, as I said, are potentially
serious for any stack that uses custom props with the same name to
monitor various states of objects. Jacqueline and Jacques (kind of
musical, eh?), I experimented a little more and find that it is not
limited to using y as the variable name or one-letter variable names in
general. I get the same problem when x is used for the custom prop on
two different cards and when a two-letter name, xV, is used. The
problem is also there if you use an If control structure rather than
Switch, and it is not limited to cards. I set props for two buttons in
the same way and lost the value of the same-named prop for the second
button. I haven't used Behaviours yet, but you can readily see how the
problem could be pervasive there.
Jim, I appreciate the fix you suggest, but when you say long name, do
you mean the long name of the card? If so, then that does not work
either. In any case, a bug report is in order.
I gave a very quick answer to you because I do this all the time and, in
fact, ListMagic has identically named custom property sets in the stack(s)
and in each card that you install ListMagic widgets in. If what you say were
true, ListMagic would not work at all.
So I created a stack, added two cards called FirstCard and SecondCard (I
don't like spaces in names) and in cd id 1002 I created a button with the
following script:
ON mouseUp pMouseBtnNo
set the x of cd FirstCard of this stack to 123
set the y of cd FirstCard of this stack to 456
set the y of cd SecondCard of this stack to ABC
set the z of cd SecondCard of this stack to DEF
END mouseUp
I then put a button and a field called fldResult on FirstCard and
SecondCard. The button has this script:
ON mouseUp pMouseBtnNo
local tX, tY, tZ
- #
put the short name of this card cr the long name of this cd into fld
fldResult
SWITCH the short name of this card
CASE FirstCard
put the x of (cd the short name of this card) into tX
put the y of (cd the short name of this card) into tY
put return x tX y tY after fld fldResult
break #
CASE SecondCard
put the y of (cd the short name of this card) into tY
put the z of (cd the short name of this card) into tZ
put return y tY z tZ after fld fldResult
break
DEFAULT
put cr Error: It's neither card into fld fldResult
END switch
END mouseUp
On FirstCard I get:
FirstCard
card FirstCard of stack D:/MyStacks/TestCProps.rev
FirstCard
x 123 y 456
And on SecondCard I get:
SecondCard
card SecondCard of stack D:/MyStacks/TestCProps.rev
y ABC z DEF
Seems correct to me. ;-)
There is no problem except readability and maintainability of code in using
1 char custom properties and vars. When you experience weirdness like you
are seeing, first put to a field in your stack rather than the msg box to
eliminate any possibility of the msg box contributing to your issue and then
change excessive use of *this* stack or *this* card to something more
specific. Also use parenthesis to resolve a name like a card name first.
Aloha from Hawaii,
Jim Bufalini
___
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