How to force Internet Explorer to ignore the cache and reload a SWF...

Dave of davewhite.net and I have just put the finishing touches to a very* simple voting form on a website I have been developing. Users can vote from six choices and the results get picked up by a SWF file that displays the results as an animated bar graph.

The problem, as ever, was Internet Explorer. After casting your vote you would be redirected to a new page containing the SWF file showing the new vote standings (including your vote). This worked fine in Firefox and Safari but, for reasons best known to some useless Microsoft techy, IE saw fit to just load in the SWF with the old data. I tried all sorts of work arounds including meta-tags that (supposedly) prevent IE from caching the webpage but to no avail.

In the end I created a new SWF file, the same shape and size that loads the original one in using the following code:

theDate = new Date();
// this number will always be unique
nocache = theDate .getTime();
_root.holder.loadMovie("myMovie.swf?nocache="+nocache);

The random number *should* prevent IE from just loading in the previous version from cache. Some testing will tell...

Oh - and you can do the same if you are loading in other files, such as txt, too.

* No really - VERY simple.

Modulus in Flash ActionScript 2...

The Modulus is the remainder of division between two integers. I was looking for this operator in Flash a little earlier. Flash CS3's help files are fairly difficult to wade through at the best of times and simply typing 'Modulus' into the search box didn't bring up any search results in Flash's help files.

I hit Google and discovered that the operator required is the % symbol:

X % Y = the remainder of X / Y

For example: 

10 % 3 = 1
10/3 = (3*3) + 1(remainder)

Using an ampersand in ActionScript loadVariables function...

So I'm working on a project for Sky, its 1 hour to the deadline , and I think I better test the links which I am importing into the Flash project (for deployment on the Desktop as a Projector) from a txt file using the loadVariables function... This links look something like this:

http://www.blahdeblahdeblah.com/something.php?this=123&that-123&p=theURLiamtryingtolinkto   (note the ampersands in there)

...and thats it! Everything is shot to hell because of the ampersands. When Flash imports using loadVariables it wants everything in a standard MIME format application/x-www-form-urlencoded (a standard format used by CGI scripts). This means variables are seperated by ampersands. For example:

company=Adobe&address=601+Townsend&city=San+Francisco&zip=94103

So as soon as you stick an & midway through a URL in Flash thinks its come to the end of the variable and ignores the rest of the URL. Fine! I thought (at first)... I'll replace the URL with &... You see the irony there?

I furiously started hard coding the URLs and in doing so came across a way of replacing the & with its URL character code... Its so simple it hardly warrents writing all of this. Simply swap out all ampersands with %26. Its as easy as that! So:

http://www.blahdeblahdeblah.com/something.php?this=123%26that-123%26p=theURLiamtryingtolinkto

Works a treat!

And in case you were wondering here's a list of other URL encoded characters:

URL Encoded Characters

backspace %08
tab %09
linefeed %0A
creturn %0D
space %20
! %21
" %22
# %23
$ %24
% %25
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
- %2D
. %2E
/ %2F
0 %30
1 %31
2 %32
3 %33
4 %34
5 %35
6 %36
7 %37
8 %38
9 %39
: %3A
; %3B
< %3C
= %3D
> %3E
? %3F
@ %40
A %41
B %42
C %43
D %44
E %45
F %46
G %47
H %48
I %49
J %4A
K %4B
L %4C
M %4D
N %4E
O %4F
P %50
Q %51
R %52
S %53
T %54
U %55
V %56
W %57
X %58
Y %59
Z %5A
[ %5B
\ %5C
] %5D
^ %5E
_ %5F
` %60
a %61
b %62
c %63
d %64
e %65
f %66
g %67
h %68
i %69
j %6A
k %6B
l %6C
m %6D
n %6E
o %6F
p %70
q %71
r %72
s %73
t %74
u %75
v %76
w %77
x %78
y %79
z %7A
{ %7B
| %7C
} %7D
~ %7E
¢ %A2
£ %A3
¥ %A5
| %A6
§ %A7
« %AB
¬ %AC
¯ %AD
º %B0
± %B1
ª %B2
, %B4
µ %B5
» %BB
¼ %BC
½ %BD
¿ %BF
À %C0
Á %C1
 %C2
à %C3
Ä %C4
Å %C5
Æ %C6
Ç %C7
È %C8
É %C9
Ê %CA
Ë %CB
Ì %CC
Í %CD
Î %CE
Ï %CF
Ð %D0
Ñ %D1
Ò %D2
Ó %D3
Ô %D4
Õ %D5
Ö %D6
Ø %D8
Ù %D9
Ú %DA
Û %DB
Ü %DC
Ý %DD
Þ %DE
ß %DF
à %E0
á %E1
â %E2
ã %E3
ä %E4
å %E5
æ %E6
ç %E7
è %E8
é %E9
ê %EA
ë %EB
ì %EC
í %ED
î %EE
ï %EF
ð %F0
ñ %F1
ò %F2
ó %F3
ô %F4
õ %F5
ö %F6
÷ %F7
ø %F8
ù %F9
ú %FA
û %FB
ü %FC
ý %FD
þ %FE
ÿ %FF