ࡱ>  uRoot EntryRoot Entry p|YrRASH26 @Contents[Page 1vSymbol 9 h  , !"#$%&'()*+-;./0123456789:<Y=>?@ABCDEFGHIJKLMNZPQRSTUVWX[\]^_`abcdefgijklmnopqrstwxyz{|}~Symbol 7_xSymbol 8TSymbol 6NTSymbol 5 Symbol 4 Symbol 3 qSymbol 2Symbol 10OMedia 10Media 3Media 4Media 5 Media 6e1Media 7NMedia 8;Media 9)lMedia 11 Media 12Media 13Media 14VMedia 15Media 16gK Media 17@ Media 18d Media 1P  !"#$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefhijklmnopqrstuvwxyz{|}~(&K*S         dddddeBBBABABABABBeddAAABAABBAdedeedAABededeeeee xg[[GO l@`0%М1ޛ+-jwu.;h8D "D:Psr3WuS#4'Q똬I#p+yYߓCRIW[Hedn_p%9 :' yM:8+I[t^%9YSיafNڿٲ*tbVNfrY<þӮg9JxibboRM+IGe: zm/ jX^3swyP;_ʣWh7 ~+ -X)1VKZޠ~%YvlXQeaZ)&s>gQϑ^aP(D*iF뗩.Ze~Vݛ$Wydxr&~fgմ}x} 2&Ro4}R bkn6vύ5?߶WswV֠B N-,:TjZD $#@Hx]$!UIB% J"М0"9T!9BI1@*9 T!9BI1_ս;X\?Ӂk)w7O) 67”i7Ⱥ\; J+^tvOܸmd9KO粝C)DLΒT/n0WoAg^c.i]=7w(8bprqF17=tw;(>\vܣ#[SJ_e[7__HwtْDz҃+|Yo)}b\$ruS^ГKsyiKӊ^xw˥MôkaUĻ[uNKyvHXHǦ^DYQ-ǔӱv{)\Z鵁kYZ9fSCydyޒ/-?1O@&~H ð:81xJ?`cIw,4z:>5j'bZp8mvm; >ocdoMHQH/G6CA87!rinp7Wa%5M*e ^w:#ΥGN[dgΥ/KJBo [vw.qBnDJdTr nP~)9A]Qh^1RY[1vPtCT /+f06;,hx+Q=xA0DŽi8 d8(}R$1,[bAXX%}2#X`Ea;ze1Ĭ($p V|f2IZ4 uwL9R I8"aPP|ARP3LC+') !WK;W%)Rll/eĩbG}  Viz=+ $BU" exe8G sIaRҎ G$)ťTR! ֤hZszaM#W@)f΍=[R:#ꙤGAI\^f/AAcp- eKr( O}ר_SpF =fG4̗`KpH!|MfD- T XeiPQ zpo$%E^UE*:<'ΓE ƶYmH:xn3v8F=ғ C=c!>gw3<;Dғk}3.zDmj^VUDR,SB}5 3=4k+2W4k"MS%L` )7p(,%^[(lzhA*نdC"TMrt7av,%Rr;mcO1䠄awfF$jX}g+dG4&0D9Ml9Q)K3 zAlr93"B@KGd)%;p;Q6:ѕ:U5-s59JqGTe5;4$.bK-ŕ*q:NG)! r,ʑ2WAQ7l`-! N .dj99p8?( لR}dk[Sύ &O%1v4pv [֣ߡLߗM3]jOXXhrϮ!8DvʡB!2X3be H8Pz쭆0~D3Ő.G2.SżUMv&5,jśp V5,,0=xHaPDx7b '7`h'_|ުG:AW2Xq_6t%TVQ?DW~2(ܽw͚<9߽`~Ŏ_R| 0sEHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x'[r:DIf(=?(,NփA&r?NU*@XZnmINyщ&8'u'71ro| .piHyC%? &p$(G$` ќ&8z+=Kߥ5C86jĢD,=I5 {:{DΒO8Hq 9 IL 8޳X$ rՑ~|38R$Z$.0`}5]sX0,]w'c唟sBoZ!()s$+ kY !Iabc`PzZp cܐ$BWn N̷+&Gp2 uU)L|)'IfƸd" 4sd!1@FLȩٓ@[l"Lqy|My:  0eRag`d΋ l-x_*E`0s_Y\/cM`' ~o1(n\Ęv67Ձ )c4օg?U>(D%R{GnoI·S:bzL>581r|ϔӁ,.}_ONZ(?}oׁ_~8_1HGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xMv04Q 6s1aZHG'fY9}TW$1ዂ _Y W՝M 7Mcb+a8s1 .B$ j|]X*03P Ĝ}21 E9gz`O  B)ڌB.[H\ثZV &3l9sczriTUs2/6zۖ I4D&LTsA@iAA& "h|$c+4gPT{s̡L 9ßgr'i0t#{eXJU3aa^]ld!|(Y /QFN77.Nc=9uaUb3VE!ܱ"ԁ->>>V2!&(h[W#iA)(J]aGEn= "h[2 '(]Pnҕ0Q hċ@߾9yܧixg۝W'D0u8w&L_+ox;/:jHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x2K Mf)'VGvSj"ɽ{_j`C0M8\L?!G9j;j9mͿ}@y׋}^nV e_g$IK1nt0ffj;CZ;^TA.$Clㅼ\ F-|-M}Ԛm\ll(YBJ$0zkPG*`Mzҭ0R"-μ^}WZ$L&ﻮLl3[,y0mIv]{S g2IiU6Sojd1-`Qvjj1ĉ #qNGluAݐ3+((7!4Hw}'^۽U6 V L6RCd&53AN,&ѨtXИ*9.c|}̉9>|8sl^HGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x[ EIf(R' 9(NE}}9X-HwwPZ}IsԜC9'qxJjF"=]o`}cK`Pk=/Sv|z9sYҀ}D;=ZI~kq4{j;?;oZou}dX՜.dgn"m;4Zf.iN]𯮥Hhp`k^ ! RB©cP{Bph\ErQ++iaԑ`u3Ժ A!(a]SV=#dQ?vMS fv ư[(W 9cV%~ZCϦ('RtgK, ɽV6ѳOމI@%ۨc8@44A~Ƭ1`ui]['c@*^(^UJoۏdH҃* uAA aֳwD9:g2,\ўbELpn?ĉ)oș$lrLevDْșW*+ElJgZDG^n3x?#˻=s'MG' ?TFm RԗXP]슧EdA6Jo<'o8H+ݞl#yO'c9MX5'YƻR&"^/s"\7 g>9ouAqм)PTgsb">^ӥ:>'Dd$Žrxaު6-@Q[UDrs~h#޸M›` ڱ=:;mhzi 8;$b8F;rfi%tl&R2'ca7UU9-\/[CP QSS]w<@xlYȉ];q:N"l<@P[9_r#}oSvNEZox`c˯1kAD5ZHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8      !"#$%&'(*+,-./0123456789:<=>?@ABCDEFGHIJKLMOPQRSTUVWXYZ[\]^_`abcdfghijklmnopqrstuvwxyz{|}~xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x] &]Jk% E1q ԼH؟M4]rrrrϓ;{@f/d4Є)t~a&N0dh1*pΛiÀouwn )wR`61h촖C6˰0N 1x4 Wq#3 ^xI ~Nh/`f4z̅ A#zAEjyV`9= f@!0U0j{WCuYψI940h4(&6!ëXvH%3^"B7-%g9c-lfGZuKl-Yk82[yxBee6t6$v+.q)OG__ C*λ/a%].->gj=똗F?[o-JՖ =O*Jgk Z٥/ԡ~X;NӔAA}B s$ڇ[O3eR2'u›>x1 $gBA2ҌJcQJPx\abe t6Ggo@a7M;ݶ7+g@H"݄+ۼ\gn]cXHUkS<0h<4 N+ι 8NU6 C8*ff^ˁˁˁˁˁˁHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xM FKK 4츅^IN;m",jUx~y65ԀPj@ 5mt|߱RD)e翐BƖk^d\.(IP(h-DHѥS" sM'5aDv :~4P@A0:r;-޶e\&0hzks;,{/k#ۙ'sI4OkYjzOrk;kg =.a陿3;H'NìQ{ ŋQVak۱: UTl#qIc s2yH2 J `OS'qHP76Zٺ!ȺqBhݶ:۹!ﱏNHyDPj@ 5/HGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xH1 @Afpzx Gh!ӽpj:wd `cB @ @8!HGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xұ D6UaDJ,Q$ҧ6Owz&\iTrY!ʎ-jSc6VMBLͭ487;8+@@@@@bHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xK DOˌA'A桇B_Ƌ? grx:-I,sү;WYtMDz; P}M-#fß{nzS+Xo@?#c|N^XCnغbmn =4V)+c _@ɹD_EɴalcPŹL.U: OlpD_@8Dn('\6mQ][|:::?x<]{=4mw)U;]O5lXS=5{HGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x [ EW h%x;sٖ4$U-$CzJ$04π@k>_c7hE+%V 4琒(8J>ݒpW W%1z\.3萠U d8rE0wj1@q<FGI5"N$ԅV/ʅs+n}aslkKXb"7W?ŢuQ=q2eRĉD!ЀmJ8T@jX[j@pg3LAzU> 벬)'$H񄊣=fGqc Hh)VB򫹚&x8H;|2ZdF{ :!\噉݁Ŵzd/4O66xI*Gp*#8+?VSF-`jSl=mK'lۍm>qGDD$-o̔S@Lm HNf"OKÞ6>D:o:%hHixG K0w].kqTy~Fjvw3və d&QJ 5Hp }ZJ<>9u^5贊䋇/mOAٺ\>8?_Zq8/ˇog4ɧwކ. 8x=ںSi9qJ )AA 'F&ҾIwfvҘ3K@w;t݁puLw`7ueHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$xQn@DOYl I_a)hc%3 vQ]]=ΕQeDFnLyhM0{< NV/TO湛YJgtSwvPfNGc(MV-"9's$=e$3N"mGAS :ΌHqGJe^4Tz7 Y$eNM~*y᳦cQ/`QX8p]t]0vr48$2Kp6w^Q"ljdz- oG>(D5˜{'hO(J$옦#|)&7<$lI<P}GI7yxCJinw<^c?}ײke)<5s!mFVzpQ5~P4K+=ol0-s4!JADzЇ[ԜgAm;Y%!,|}m|_GQ\PS.ڥjۋ"hX,\r :lskȖ`+]s!g@:f^9\q$=- U7h ]JRݥNt29UW4攔,9Ų cS?DB "-؎Fbcq.]qX1~7dc ߏ_Z2acND)RUs(EJDz =1q9.R[8Ebb^(/P,51>FcFL{m8qaw#6yp=~w+c&L>ֈx|~x}"<± |$J/ZHGd00((0 (( (   ((((0 (0((0(00(080088088@@8HHHHHPH@PXPX`HX`hhphpxpx(88 00 (( (  ( 0(    (8xxxppphhh```XXXPPPHHH@@@888000(((  TT((lT<$ T|`tH\0@$ ̸İ||ll|``tTThLL\@@T44H,,<$$0$ ||Tp`8XH<0 $ ؔtp\XDD04l$T@ (xxt`H4hPԨ<Č,pT<l P4PPx88,$ pT 8tdT@0 P|\@p(Dtt\\HH00` @$|tld\XPD@8,,$p\dDxH0X08 hPXDL8@x04d($L8$ XX((ȸ|lTD0T$x[R0EW%eHx閙q j&$DǷo?,;vqo_zRŌ7ILӔ HiJ)=Ѧ4j<'VS9 <C`bJQ߻H91 wZ}?UCHlS Fi5s/iC?DDw) B}/s_h~qPLm굈qȏp6 mduǕ4Tx_ ϝ}e,R`7XODQ0!1FZ6)=#,jT\^AKl2$^#  3_gCPicPage CPicLayer CPicFrame?f Layer 4OCPicPage CPicLayer CPicFrame(00"08?m Layer 23issspJy;{y0g .( N]J2a,0y;#\y,z0gX 2|Mx #W_OfyVvO0z}Fzz|#mFc\,WA()(ry;^|,\jO۱b/'݀`73WYI[ %l'%l8Z&Y XNoY؀ڀ㮀,%[3"W߀* ^`?^* G +G  ) ]+XK;Xg  , +'Au@v P+#k  / #O#;/U %967߭ ހ0z}0zz|z A!}1c'E/B)5t #MH-Q{#Ҁ6g*#4;5y yE002~309$-$A)ŀX*Y9:;Wu > h % ";} *!_,?]@&JB&R`ڦ"~a*W"<   % #ހ{'>"c Gz  / z6XL 1 (h,#׀   =݀"9,j=';HzDȀǜ񀲀 i:N2  / A#5nt`H%q񀱀hQy<q  = H , $? 7 2 &kEMaހGK'.Qnр̀ b R 9 Q28- 7M/K T ` * 1 Ԁ#| /L7Uzc"A9}bY!N-erM8A 3z)0z|0z}0L?53(0g0 vC0D&=?p60ub)0b8]50k0|`>9d3%.ހ):2v0ހ d &<)00.z 5+0-u#OY$q?h0&00C60%0b50{0%35*  / Nǹ*H  kT T$/%B g#n  2_PA\SYA ր*Ҁ L l - V8N( 1l6D_'P e2jြn3?dYuF#5uV#Ѐ  S OJ. I7M"}  , 1!Ԁ#}   3/m7#5[&,Y_1  =r !-$?  ( /]F' ?Z Layer 1OO     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMOPQRSUVWXYZ[\]^`abcdefgh:f330<x<<<<<<xx<xxx0 xx0 x<<<<H<<x<xxxh<x xhx?B Layer 1OOCPicPage CPicLayer CPicFrame p0R 9!7r00*00pW:Z?Cd Layer 1OOCPicPage CPicLayer CPicFrame i0ZJۀ0Հw$V)94F4$s@uJ@) ?M Layer 1OOCPicPage CPicLayer CPicFrame CPicBitmap: ?H: ?SW: ?`: ?g\:?<:?:?/:?j:?~:?-BB:0H0 0 ?TB:00 0h ?6B:0 0000 ?f B:00 0 ?y:?u: ?WFremoveMovieClip(this); Layer 23CPicPage CPicLayer CPicFrame;<xxPP? Layer 1OOCPicPage CPicLayer CPicFrameCPicText (( 4  Arial Black(High Score  (c4 score  Arial Black(03?, Layer 1OOCPicPage CPicLayer CPicFrameCPicText ((4  Arial Black(Score (c4 score  Arial Black(03?Ri Layer 1OOCPicPage CPicLayer CPicFramexH0080n?A Layer 23U3330G0:0Y(  "';   !# O  9%6    ) )     W>^$H0N#9$ \ 3-:  *.     3V0PN0\&3& 0RbT     O -V-G ''  C  N Q*E##@ %   &  J<0  'd0bJ!")!4$ \ 3-:  *#9mO61OO0bO`      OFnX"Lx0 c9`:b3 0Pr   Pj  W>^$H0NR  ) )   )@  N4Pc0K'F ' $     3<0OfVK0% M    =(T \ 3-:  *#9$        $ "  ?&Ufff0G0:0Y(  "';   !# O  9%6    ) )     W>^$H0N#9$ \ 3-:  *.     3V0PN0\&3& 0RbT     O -V-G ''  C  N Q*E##@ %   &  J<0  'd0bJ!")!4$ \ 3-:  *#9mO61OO0bO`      OFnX"Lx0 c9`:b3 0Pr   Pj  W>^$H0NR  ) )   )@  N4Pc0K'F ' $     3<0OfVK0% M    =(T \ 3-:  *#9$        $ "  ? Layer 1OOCPicPage CPicLayer CPicFrame E@.  bf3U6@00pP0U06@)88J8#*8JYU?g Layer 23 CPicSpritefBdl= highscore<component metaDataFetched='true' schemaUrl='' schemaOperation='' sceneRootLabel='Scene 1' oldCopiedComponentPath='2'> </component> Brscore<component metaDataFetched='true' schemaUrl='' schemaOperation='' sceneRootLabel='Scene 1' oldCopiedComponentPath='3'> </component> ?J Layer 3O CPicButton"" @@@I?d I:on(press){ getURL("http://www.swfspot.com","_blank"); }pRY $<*  x_7'Kd''6Bt!!F"Bs#j7;Xx0 0X0Hx x0nvXx00X0Hxx0 x0 \P 0Hx  X 0|Xx00X0Hxx0 &Xx00x00Hx X x0 0 X0Hxx0h "Xx00X0Hxx0?_&@//Base Defender by John Bezanis //Created for swfspot.com //The objective of this game is to defend the tnt beneath the grass by blowing up any //incoming airplanes and the bombs they drop. If a bomb hits the grass, it will leave an impact crater. //The game is lost when a bomb travels all of the way to the tnt. //The airplanes appear progressively faster, as well as the bombs they drop. //A point is scored each time an airplane or a bomb is shot. //This class is used for the grass. It is useful to use raster pixels rather than vector //graphics because hittests can be performed on individual pixels, and craters are easier to create. import flash.display.BitmapData; //Class used when manipulating bitmaps import flash.geom.Rectangle; //Another class used when manipulating bitmaps import flash.geom.Point; //Initialize the total number of objects to 0. This used to identify instances of objects totalobjects = 0; //Initialize the level to 1 curlevel = 1; //Initialize the number of passed planes to 0 passedplanes = 0; //When set to 1, planes and bombs appear. gameon = 1; //Array storing the names of all of the enemies on the screen var enemyarray:Array = new Array(); //This function removes an enemy from the screen, as well as from the enemy array function removeEnemy(enemyname) { //loop through all of the enemies, removing it from the array if it exists for (enemysearch=0; enemysearch<enemyarray.length; enemysearch++) { //Check if the current index matches the enemy we are looking for if (enemyarray[enemysearch] == enemyname) { //There's a match, so remove the enemy from the array enemyarray.splice(enemysearch, 1); //break the loop break; } } //Remove the actual enemy instance removeMovieClip(enemyname); } //This function removes all of the enemies from the screen and clears the enemy array function removeAllEnemies() { //Loop through the entire enemy array, deleting the enemy instance at the current index for (enemyloop=0; enemyloop<enemyarray.length; enemyloop++) { //Remove the enemy at the current index removeMovieClip(enemyarray[enemyloop]); } //All enemies have been deleted, so clear the enemy array enemyarray = []; } //Check if the input object collides with any enemy. //If it does, remove both and create an explosion function enemyCollision(collider) { //Looping through all of the enemies in the array for (enemysearch=0; enemysearch<enemyarray.length; enemysearch++) { //Check for a collision if (eval(collider).hitTest(eval(enemyarray[enemysearch]))) { //there is a collision, so increment the score score.score++; //if the current score is greater than the high score, update the high score if (score.score>highscore.score) { //each score is stored within a movieclip instance highscore.score = score.score; } //Create an explosion at the position of the enemy explosion(eval(enemyarray[enemysearch])._x, eval(enemyarray[enemysearch])._y); //Remove the enemy removeEnemy(eval(enemyarray[enemysearch])); //Remove the input object removeMovieClip(eval(collider)); //break the for loop break; } } } //Create a bitmap that holds the data of the grass var grasspng:BitmapData = BitmapData.loadBitmap('grass'); //Create another bitmap the size of the grass, and make all of the pixels transparent var grass:BitmapData = new BitmapData(grasspng.width, grasspng.height, true, 0x00000000); //Create a movieclip that will hold the grass bitmap this.createEmptyMovieClip('grasscontainer', this.getNextHighestDepth()); //This function refreshes the grass bitmap filling in spaces that were blown up by bombs function resetGrass() { //copy the grasspng bitmap over to the grass bitmap grass.copyPixels(grasspng, new Rectangle(0, 0, grasspng.width, grasspng.height), new Point(0, 0), grasspng, new Point(0, 0), true); //attach the grass bitmap to the grasscontainer grasscontainer.attachBitmap(grass, grasscontainer.getNextHighestDepth()); //move the y position grasscontainer._y = 275; } //apply the grass resetGrass(); //Attach the soldier movie clip to the stage this.attachMovie('soldier', 'soldier', this.getNextHighestDepth()); //set the soldier's x position to the center soldier._x = Stage.width/2; //set the soldier's y position to 50 soldier._y = 50; //intialize the x and y speeds to 0 soldier.xvel = 0; soldier.yvel = 0; //when set to 1, the soldier is not on the ground soldier.airborne = 1; //code run for the soldier at the start of each frame soldier.onEnterFrame = function() { //loop through the list of enemies and check if the soldier is hitting any of them for (enemysearch=0; enemysearch<enemyarray.length; enemysearch++) { //if there is a collision, end the game if (soldier.hitTest(eval(enemyarray[enemysearch]))) { //clear all enemies from the screen and show the lose game splash loseGame(); //make an explosion at the position of the soldier explosion(soldier._x, soldier._y); } } //If the soldier is airborne, increase the y velocity if (this.airborne) { //gravity this.yvel = Math.min(10, this.yvel+.6); //if the soldier drops below the screen, lose the game if (this._y>Stage.height+20) { //soldier has fallen below the screen, player loses loseGame(); //reset the soldier's position this._x = Stage.width/2; this._y = 30; } } //Set the soldier's x position according to its velocity this._x = Math.max(5, Math.min(Stage.width-5, Math.round(this._x+this.xvel))); //Set the soldier's y position according to its velocity this._y = Math.round(this._y+this.yvel); //Check if there is ground below the soldier if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y+1)) != 0) { //loop through each pixel the soldier has moved vertically, checking for the ground for (moveup=1; moveup<=this.yvel; moveup++) { //check if the soldier has dropped below the top of the ground if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y-moveup)) == 0) { //there is a collision, so move the y position up this._y -= (moveup); //exit the for loop break; } } //the soldier has hit the ground, so reset the y velocity this.yvel = 0; //the soldier is no longer airborne this.airborne = 0; } else { //else the soldier has not hit the ground, so it is still airborne this.airborne = 1; } //jump if the W key or up arrow are pressed and the soldier is not airborne if ((Key.isDown(Key.UP) || Key.isDown(87)) && !this.airborne) { //soldier is now airborne this.airborne = 1; //soldier jumps, so boost the y velocity this.yvel = -10; } //Left or A key is pressed, so move the soldier left if (Key.isDown(Key.LEFT) || Key.isDown(65)) { this.xvel = -5; //Else if the right or D key are pressed, move the soldier right } else if (Key.isDown(Key.RIGHT) || Key.isDown(68)) { this.xvel = 5; //Else if neither left or right are pressed, stop the soldier horizontally } else if (!this.airborne) { this.xvel = 0; } //If the soldier is moving left or right or falling, check if the ground is present if (this.xvel != 0 && !this.airborne) { //This moves the soldier up slightly when moving left or right when the ground gets higher for (buffup=1; buffup<6; buffup++) { //It helps to keep the soldier on top of the grass at different heights if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y-buffup)) == 0) { //If the soldier is just below the ground, move the soldier up to the ground level this._y -= buffup; //soldier is now at the ground level, so break the loop break; } } //soldier is below the ground level if(buffup==6){ //move the soldier up one pixel to keep him towards the ground level this._y -= 1; } } }; //This function adds an explosion to the screen at the specified position function explosion(xpos, ypos) { //attach the explosion this.attachMovie('explosion', 'explosion'+totalobjects, this.getNextHighestDepth()); //set the x and y positions eval('explosion'+totalobjects)._x = xpos; eval('explosion'+totalobjects)._y = ypos; //increment the total number of objects on the screen totalobjects++; } //This function erases a circle of the specified size from the specified bitmap function circleErase(bitmap, xpos, ypos, circlesize) { //r2 is the radius of the circle squared. Keeps the math out of the for loop r2 = circlesize*circlesize; //The circle is drawn using a series of vertical lines. for (circx=-circlesize; circx<=circlesize; circx++) { //Determine the y distance at the current x position. //The y is going to be larger as it gets closer to the center of the circle circy = Math.round(Math.sqrt(r2-circx*circx)+0.5); //Draw a transparent vertical line using the start x and y positions, //with height according to its distance from the center bitmap.fillRect(new Rectangle(xpos+circx, ypos-circy, 1, circy*2), 0x0); } } //The game has been lost, so make a bunch of explosions at the bottom of the screen //and delete all of the enemies function loseGame() { //Create a bunch of explosions at the bottom of the screen for (xpos=10; xpos<Stage.width; xpos=xpos+20+Math.random()*40) { //move along the x axis, adding explosions every 20+Math.random()*40 pixels explosion(xpos, Math.round(Stage.height-35+Math.random()*30)); } //clear all enemies from the screen removeAllEnemies(); //this prevents new enemies from appearing gameon = 0; //if the loser screen is not currently up, attach it and center it if (!loser) { //attach the loser/play again button this.attachMovie('loser', 'loser', this.getNextHighestDepth()); //centerit loser._x = Stage.width/2; loser._y = Stage.height/2; //when the button is pressed, start a new game loser.onPress = function() { //start making new planes gameon = 1; //fill all blown up grass back in resetGrass(); //reset the score score.score = 0; //reset the level, changing the frequency of the planes and bombs curlevel = 1; //reset the number of passed planes. curlevel increments when a certain number of planes have passed passedplanes = 0; //a new game begins, so remove the play again button removeMovieClip(this); }; } } //Each time the player clicks the mouse, a rock is thrown towards the mouse onMouseDown = function () { //attach the rock this.attachMovie('interceptor', 'interceptor'+totalobjects, this.getNextHighestDepth()); //set the x and y positions at the position of the soldier eval('interceptor'+totalobjects)._x = soldier._x; eval('interceptor'+totalobjects)._y = soldier._y-20; //The velocities are set according to the angle of the mouse relative to the soldier //X velocity of the rock. More x velocity means less y velocity eval('interceptor'+totalobjects).xvel = 13*(_xmouse-soldier._x)/(Math.abs(_xmouse-soldier._x)+Math.abs(_ymouse-soldier._y)); //Y velocity of the rock. More y velocity means less x velocity eval('interceptor'+totalobjects).yvel = 13*(_ymouse-soldier._y)/(Math.abs(_xmouse-soldier._x)+Math.abs(_ymouse-soldier._y)); //At each frame, move the rock according to its velocity and check for enemy collisions eval('interceptor'+totalobjects).onEnterFrame = function() { //Move the x and y positions according to the velocity this._x += this.xvel; this._y += this.yvel; //check if this rock collides with any enemies enemyCollision(this._name); //if the rock has left the boundaries of the Stage, remove it if (this._x<0 || this._x>Stage.width || this._y<0 || this._y>Stage.height) { removeMovieClip(this); } }; //Increment the total number of objects created totalobjects++; }; //Run at each frame. If a game is in progress, attach enemies at semi-random intervals, //generating enemies at a faster rate as the game progresses this.onEnterFrame = function() { //If a game is in progress and the random number is lower than a certain amount, generate a plane if (gameon && (Math.random()*100)/curlevel<1) { //add the plane to the array of enemies enemyarray.push('plane'+totalobjects); //attach the actual plane attachMovie('plane', 'plane'+totalobjects, this.getNextHighestDepth()); //movedir is either 0 or -1. When 0, start _x at 0. //when -1, start _x at Stage.width eval('plane'+totalobjects).movedir = Math.floor(Math.random()*2)-1; //Set the plane's y position near the top eval('plane'+totalobjects)._y = Math.random()*50+15; //Evaluates to either 0 or Stage.width eval('plane'+totalobjects)._x = Stage.width*(-eval('plane'+totalobjects).movedir); //If the plane starts on the right hand side of the screen, flip it horizontally //so it appears to be flying in the right direction eval('plane'+totalobjects)._xscale = 100*(1+2*eval('plane'+totalobjects).movedir); //If the plane starts at the right of the screen, move it towards the left, otherwise //move to to the right. If it is past the Stage in either direction, remove it eval('plane'+totalobjects).onEnterFrame = function() { //Move the x position according to its direction this._x += 1+this.movedir*2; //If the plane has past the Stage boundaries, remove it if ((Stage.width<this._x && this.movedir == 0) || (this._x<0 && this.movedir == -1)) { removeEnemy(this._name); } //If the random number is below a certain amount, attach a bomb if ((Math.random()*500)/(curlevel*2)<1) { //Add the bomb to the list of enemies enemyarray.push('bomb'+totalobjects); //Attach the bomb this._parent.attachMovie('bomb', 'bomb'+totalobjects, this._parent.getNextHighestDepth()); //set the x and y positions to the position of the plane eval('this._parent.bomb'+totalobjects)._x = Math.round(this._x); eval('this._parent.bomb'+totalobjects)._y = Math.round(this._y+20); //at each frame, move the bomb and check if it hits the grass or the bottom of the screen eval('this._parent.bomb'+totalobjects).onEnterFrame = function() { //the bomb moves 5 pixels downwards at each frame, so check for collisions for (checkrow=1; checkrow<=5; checkrow++) { //if the bomb hits the grass, blow up a piece of the grass and remove the bomb if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y+checkrow)) != 0 || grass.getPixel32((this._x-grasscontainer._x-5), (this._y-grasscontainer._y+checkrow)) != 0 || grass.getPixel32((this._x-grasscontainer._x+5), (this._y-grasscontainer._y+checkrow)) != 0) { //erase a hole in the grass at the specified position and size circleErase(grass, this._x-grasscontainer._x, this._y-grasscontainer._y+checkrow, 15); //create an explosion at the specified position explosion(Math.round(this._x), Math.round(this._y)); //remove the bomb removeEnemy(this._name); } } //Move the bomb downwards this._y += 5; //if the bomb hits the bottom of the screen, lose the game if (this._y>Stage.height) { //run the losegame function, which makes a line of bombs at the floor and stops the planes from appearing loseGame(); //remove the bomb removeEnemy(this._name); } }; //increment the total number of objects created totalobjects++; } }; //increment the total number of objects totalobjects++; //increment the number of passed planes passedplanes++; //if the number of passed planes hits 40, increment the level //more planes and bombs appear at higher levels if (passedplanes>40) { //reset the number of planes passedplanes = 0; //increment the level curlevel++; } } }; //Just some right click code for swfspot function visitswfspot() { //open swfspot.com in the browser getURL("http://www.swfspot.com", "_blank"); } //create a new right click menu var myMenu = new ContextMenu(); //add the link to swfspot to the menu var menubezz = new ContextMenuItem("Visit swfspot.com for more games and code", visitswfspot); myMenu.customItems.push(menubezz); //replace the right click menu _root.menu = myMenu;  Layer 1OO? CDocumentPagePage 1Scene 1vH $ISymbol 9loser H.loserSymbol 1͍HSymbol 7scoreH*scoreSymbol 1HSymbol 8 highscore H,HSymbol 6 interceptor$H! interceptorSymbol 1%HSymbol 5 explosionHD explosionSymbol 5ISymbol 4bomb HbombSymbol 1HSymbol 3planelVHplaneSymbol 1HSymbol 2soldierFHsoldierSymbol 1H Symbol 10swfspot F.\38-growingtree.flaswfspot!GF!G  CMediaBitsMedia 10explode1 MHHH#H42 Media 3 explode10MHHH#RH=2 Media 4 explode11MHHH#YH>2 Media 5 explode12MHHH#cH?2 Media 6 explode13MHHH#kH@2 Media 7 explode14MHHH#qHA2 Media 8 explode15MHHH#wHB2 Media 9 explode16 MHHH#}HC2 Media 11explode2 MHHH#H52 Media 12explode3 MHHH#H62 Media 13explode4 MHHH#"H72 Media 14explode5MHHH#*H82 Media 15explode6MHHH#0H92 Media 16explode7MHHH#9H:2 Media 17explode8MHHH#AH;2 Media 18explode9MHHH#JH<2 Media 1grass.\50-grass.pngDHDHgrass2*@hhhhhlegacyLineSpacing0!PublishGifProperties::PaletteName PublishRNWKProperties::speed256K0Vector::AS3 Package Paths"PublishHtmlProperties::StartPaused0%PublishFormatProperties::htmlFileName Untitled-1 PublishQTProperties::LayerOption PublishQTProperties::AlphaOption"PublishQTProperties::MatchMovieDim1Vector::UseNetwork0Vector::Debugging Permitted0PublishProfileProperties::nameDefaultPublishHtmlProperties::Loop1PublishFormatProperties::jpeg0PublishQTProperties::Width550$PublishPNGProperties::OptimizeColors1&PublishRNWKProperties::speedSingleISDN0&PublishRNWKProperties::singleRateAudio0Vector::External Player%PublishHtmlProperties::showTagWarnMsg1PublishHtmlProperties::Units04PublishHtmlProperties::UsingDefaultAlternateFilename1PublishGifProperties::Smooth1%PublishRNWKProperties::mediaCopyright(c) 2000#PublishRNWKProperties::flashBitRate1200Vector::Compress Movie1Vector::Package Paths&PublishFormatProperties::flashFileNameUntitled-1.swf'PublishFormatProperties::gifDefaultName1%PublishFormatProperties::projectorMac0"PublishGifProperties::DitherOption!PublishRNWKProperties::exportSMIL1 PublishRNWKProperties::speed384K0"PublishRNWKProperties::exportAudio1Vector::FireFox0PublishHtmlProperties::Quality4(PublishHtmlProperties::VerticalAlignment1$PublishFormatProperties::pngFileNameUntitled-1.pngPublishFormatProperties::html1"PublishPNGProperties::FilterOption'PublishRNWKProperties::mediaDescriptionVector::Override Sounds0!PublishHtmlProperties::DeviceFont0-PublishFormatProperties::generatorDefaultName1PublishQTProperties::Flatten1PublishPNGProperties::BitDepth24-bit with AlphaPublishPNGProperties::Smooth1"PublishGifProperties::DitherSolids0PublishGifProperties::Interlace0PublishJpegProperties::DPI4718592Vector::Quality80Vector::Protect0"PublishHtmlProperties::DisplayMenu1*PublishHtmlProperties::HorizontalAlignment12PublishHtmlProperties::VersionDetectionIfAvailable0Vector::Template0*PublishFormatProperties::generatorFileNameUntitled-1.swt(PublishFormatProperties::rnwkDefaultName1(PublishFormatProperties::jpegDefaultName1PublishFormatProperties::gif0PublishGifProperties::Loop1PublishGifProperties::Width550$PublishRNWKProperties::mediaKeywords!PublishRNWKProperties::mediaTitlePublishRNWKProperties::speed28K1#PublishFormatProperties::qtFileNameUntitled-1.mov"PublishPNGProperties::DitherOption#PublishGifProperties::PaletteOption#PublishGifProperties::MatchMovieDim1$PublishRNWKProperties::speedDualISDN0$PublishRNWKProperties::realVideoRate100000PublishJpegProperties::Quality80PublishFormatProperties::flash1#PublishPNGProperties::PaletteOption#PublishPNGProperties::MatchMovieDim1$PublishJpegProperties::MatchMovieDim1Vector::Package Export Frame1!PublishProfileProperties::version1PublishHtmlProperties::Align0-PublishFormatProperties::projectorWinFileNameUntitled-1.exe'PublishFormatProperties::pngDefaultName10PublishFormatProperties::projectorMacDefaultName1#PublishQTProperties::PlayEveryFrame0"PublishPNGProperties::DitherSolids0"PublishJpegProperties::Progressive0Vector::Debugging PasswordVector::Omit Trace Actions0PublishHtmlProperties::Height400PublishHtmlProperties::Width550%PublishFormatProperties::jpegFileNameUntitled-1.jpg)PublishFormatProperties::flashDefaultName1PublishPNGProperties::Interlace0PublishGifProperties::Height400PublishJpegProperties::Size0Vector::DeviceSound0Vector::TopDown0'PublishHtmlProperties::TemplateFileName Default.html!PublishHtmlProperties::WindowMode02PublishHtmlProperties::UsingDefaultContentFilename1-PublishFormatProperties::projectorMacFileNameUntitled-1.hqx(PublishFormatProperties::htmlDefaultName1PublishFormatProperties::rnwk0PublishFormatProperties::png0PublishQTProperties::Height400%PublishPNGProperties::RemoveGradients0PublishGifProperties::MaxColors255'PublishGifProperties::TransparentOptionPublishGifProperties::LoopCountPublishRNWKProperties::speed56K1Vector::Report0+PublishHtmlProperties::OwnAlternateFilename(PublishHtmlProperties::AlternateFilenamephotoreel_alternate.html&PublishHtmlProperties::ContentFilenamephotoreel_content.html"PublishFormatProperties::generator0$PublishGifProperties::OptimizeColors1"PublishRNWKProperties::audioFormat0Vector::Version8Vector::Event Format0Vector::Stream Compress7PublishFormatProperties::qt0PublishPNGProperties::Height400PublishPNGProperties::Width550%PublishGifProperties::RemoveGradients0 PublishRNWKProperties::speed512K0PublishJpegProperties::Height400Vector::EventUse8kSampleRate0Vector::StreamUse8kSampleRate0Vector::ActionScriptVersion2Vector::Event Compress7PublishHtmlProperties::Scale00PublishFormatProperties::projectorWinDefaultName1PublishQTProperties::Looping0*PublishQTProperties::UseQTSoundCompression0!PublishPNGProperties::PaletteName!PublishPNGProperties::Transparent0&PublishGifProperties::TransparentAlpha128PublishGifProperties::Animated0"PublishRNWKProperties::mediaAuthor(PublishRNWKProperties::speedCorporateLAN0&PublishRNWKProperties::showBitrateDlog1"PublishRNWKProperties::exportFlash1PublishJpegProperties::Width550Vector::Stream Format0"PublishHtmlProperties::VersionInfo@8,0,0,0;7,0,0,0;6,0,0,0;5,0,0,0;4,0,0,0;3,0,0,0;2,0,0,0;1,0,0,0;$PublishFormatProperties::gifFileNameUntitled-1.gif&PublishFormatProperties::qtDefaultName1"PublishQTProperties::PausedAtStart0%PublishQTProperties::ControllerOption0PublishPNGProperties::MaxColors255,PublishHtmlProperties::UsingOwnAlternateFile0%PublishFormatProperties::rnwkFileNameUntitled-1.smil%PublishFormatProperties::projectorWin0%PublishFormatProperties::defaultNames1 CColorDef3PfP0PHP`Px333(3f<03CH3F`3Hxf0f30ff(0f5Hf<`f@x3330333xf3d03]H3Z`3Xx3333303f3PPH33Px`33Px33Pf30f33PHff3(PHf3<x`f3Cxf3Ffff`f03f0ffx0fkHfd`f`x3f033fPH3ffxPH3fdx`3f]x3fZff0f3fPHfff`ffP0xffPxffPH3HfHxH̙n`hx3H33x`3fx`3xx`3̙kx3dfHf3x`ff0xfx0xf̙dxf]`3`f``x`px3`33x3fx3x3xx3nf`f3xffxfxfxxfkx3xfxxxxx3x333f333xfxf3fffffxxH3 HfH(H2`8x`3 `f`̙`(`0xx3xfxx x(xPx3H33x`f3x`3(x`35x3<3`33xf3 x̙3x3(x323x33f3 333(xfH3fx`ff0xf(0xf<xfCf`3fxffx̙fxf(xf5fx3ffff ff((xH3x`f0x̙PPP`3xfx̙P̙(P<x3f̙(xx`3xfxPxPd`3xfx̙PPx3f(xx3fxx3f̙xx3ff`zf*]0 explodegfxHH#"PublishQTProperties::QTSndSettingsCQTAudioSettingsh<?xml version="1.0" encoding="UTF-16" standalone="no" ?> <mobileSettings> <contentType id="standalonePlayer" name="Standalone Player"/> <testDevices/> </mobileSettings> v