<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ClickPopMedia &#187; Calculator</title>
	<atom:link href="http://www.clickpopmedia.com/tag/calculator/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clickpopmedia.com</link>
	<description>ClickPopMedia is a great little design and illustration firm.</description>
	<lastBuildDate>Thu, 03 Dec 2009 17:28:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Putting &#8217;static&#8217; to good use.</title>
		<link>http://www.clickpopmedia.com/2008/03/03/putting-static-to-good-use/</link>
		<comments>http://www.clickpopmedia.com/2008/03/03/putting-static-to-good-use/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 23:00:34 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Just for Fun!]]></category>
		<category><![CDATA[Paul]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Calculator]]></category>
		<category><![CDATA[Intermediate]]></category>
		<category><![CDATA[Static]]></category>

		<guid isPermaLink="false">http://www.clickpopmedia.com/2008/03/03/putting-static-to-good-use/</guid>
		<description><![CDATA[&#160;
I&#8217;m going to talk about how to build a simple 4 function calculator using static variables and meathods in Flash ActionScript 3.0.  This is my first tutorial, so if you have questions or comments, I would appreciate them and will do what I can.


First of all we want to think through how this is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center">&nbsp;</p>
<p>I&#8217;m going to talk about how to build a simple 4 function calculator using static variables and meathods in Flash ActionScript 3.0.  This is my first tutorial, so if you have questions or comments, I would appreciate them and will do what I can.<br />
<center><embed src="http://www.clickpopmedia.com/wp-content/uploads/2008/02/calculator.swf" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" menu="true" height="220" width="210"></embed></center><br />
<span id="more-51"></span><br />
First of all we want to think through how this is going to work.  I wanted two types of buttons;  The digit buttons (1, 2, 3&#8230;) and the operator buttons (+, -, =&#8230;) and so I created 2 simple MovieClips that are almost the same as my base and then assigned them custom classes which I planned to make later.<br />
<a href="http://www.clickpopmedia.com/wp-content/uploads/2008/03/screen2.png" title="Library and Properties"><img src="http://www.clickpopmedia.com/wp-content/uploads/2008/03/screen2.png" alt="Library and Properties" /></a>The buttons are just a simple gray box with rounded corners (which doesn&#8217;t matter&#8230;  make it whatever you want) and a small textField with instance name &#8220;btnKey&#8221; (which does matter, at least for <em>my</em> code).<br />
<a href="http://www.clickpopmedia.com/wp-content/uploads/2008/03/screen.png" title="button makeup."><img src="http://www.clickpopmedia.com/wp-content/uploads/2008/03/screen.png" alt="button makeup." /></a><strong>None of that goes on the stage.</strong>   I want to add everything to the stage with code so that it&#8217;s a simple matter of giving them instance names and passing them their initial values.Just to give ourselves something to work with I filled in the basics of our button classes</p>
<div class="dean_ch" style="white-space: wrap;">package classes <span class="br0">&#123;</span><br />
<span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="kw3">MovieClip</span>;<br />
<span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">MouseEvent</span>;<br />
<span class="kw3">import</span> flash.<span class="kw3">text</span>.<span class="kw3">TextField</span>;</p>
<p><span class="kw3">public</span> <span class="kw2">class</span> BaseDigitBtn <span class="kw3">extends</span> <span class="kw3">MovieClip</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> num:<span class="kw3">Number</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> BaseDigitBtn<span class="br0">&#40;</span>numP:<span class="kw3">Number</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">this</span>.<span class="me1">num</span> = numP;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnKey.<span class="kw3">text</span> = <span class="kw3">String</span><span class="br0">&#40;</span>numP<span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mouseChildren = <span class="kw2">false</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; buttonMode = <span class="kw2">true</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addEventListener<span class="br0">&#40;</span>MouseEvent.<span class="me1">MOUSE_UP</span>, <span class="kw3">OnRelease</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> <span class="kw3">OnRelease</span><span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/****I will decide what happens here later****/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>I pretty much use the same code for both <strong>BaseDigitBtn</strong> and <strong>BaseFuncBtn</strong>, only one receives a string var while the other receives a number.</p>
<div class="dean_ch" style="white-space: wrap;">&#8230;</p>
<p><span class="kw3">public</span> <span class="kw2">function</span> BaseFuncBtn<span class="br0">&#40;</span>disp:<span class="kw3">String</span>, strP:<span class="kw3">String</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">this</span>.<span class="me1">str</span> = strP;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;btnKey.<span class="kw3">text</span> = disp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; mouseChildren = <span class="kw2">false</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;buttonMode = <span class="kw2">true</span>;</p>
<p><span class="kw3">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;addEventListener<span class="br0">&#40;</span>MouseEvent.<span class="me1">MOUSE_UP</span>, <span class="kw3">OnRelease</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p>&#8230;</p></div>
<p>Now if we want we can write the code to put these buttons on the stage.  It&#8217;s only a few lines of code really that are copied and pasted till I&#8217;m blue in the face then with little added changes in each:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="coMULTI">/**Importing my 3 custom classes**/</span></p>
<p><span class="kw3">import</span> classes.<span class="me1">BaseDigitBtn</span>;</p>
<p><span class="kw3">import</span> classes.<span class="me1">BaseFuncBtn</span>;</p>
<p><span class="kw3">import</span> classes.<span class="me1">Calc</span>; &nbsp;<span class="co1">//I will talk about this class in a second&#8230; &nbsp;just hold on.Calc.clearField(); &nbsp;//I needed to initalize some variables</span></p>
<p><span class="coMULTI">/*************Creating all my button instances*********************/</span></p>
<p><span class="kw2">var</span> Btn1:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn2:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">2</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn3:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn4:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn5:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn6:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">6</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn7:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">7</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn8:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">8</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn9:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">9</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> Btn0:BaseDigitBtn = <span class="kw2">new</span> BaseDigitBtn<span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//The first peram in the following declerations is what is displayed on the</span></p>
<p><span class="co1">//button. &nbsp;The second peram is the name of the opperator.</span></p>
<p><span class="kw2">var</span> BtnA:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;+&quot;</span>, Calc.<span class="kw3">ADD</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnS:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;-&quot;</span>, Calc.<span class="me1">SUBTRACT</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnM:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;X&quot;</span>, Calc.<span class="me1">MULTIPLY</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnD:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span>, Calc.<span class="me1">DIVIDE</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnE:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;=&quot;</span>, Calc.<span class="me1">EQUALS</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnC:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;C&quot;</span>, Calc.<span class="kw3">CLEAR</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnPN:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;+/-&quot;</span>, Calc.<span class="me1">POS_NEG</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> BtnDec:BaseFuncBtn = <span class="kw2">new</span> BaseFuncBtn<span class="br0">&#40;</span><span class="st0">&quot;.&quot;</span>, Calc.<span class="me1">DECIMAL</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*****************Placing those buttons on the stage******************/</span></p>
<p><span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> i = <span class="nu0">1</span>; i &lt; <span class="nu0">10</span>; i++<span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp;addChild<span class="br0">&#40;</span><span class="kw3">this</span><span class="br0">&#91;</span><span class="st0">&quot;Btn&quot;</span> + i<span class="br0">&#93;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="kw3">this</span><span class="br0">&#91;</span><span class="st0">&quot;Btn&quot;</span>+i<span class="br0">&#93;</span>.<span class="me1">x</span> = <span class="nu0">10</span> + <span class="br0">&#40;</span><span class="br0">&#40;</span>i<span class="nu0">-1</span><span class="br0">&#41;</span>%<span class="nu0">3</span><span class="br0">&#41;</span>*<span class="nu0">50</span>;</p>
<p>&nbsp;<span class="kw3">this</span><span class="br0">&#91;</span><span class="st0">&quot;Btn&quot;</span>+i<span class="br0">&#93;</span>.<span class="me1">y</span> = <span class="nu0">10</span> + <span class="br0">&#40;</span><span class="kw3">int</span><span class="br0">&#40;</span><span class="br0">&#40;</span>i<span class="nu0">-1</span><span class="br0">&#41;</span>/<span class="nu0">3</span><span class="br0">&#41;</span><span class="br0">&#41;</span>*<span class="nu0">34</span>;</p>
<p><span class="br0">&#125;</span></p>
<p>addChild<span class="br0">&#40;</span>BtnA<span class="br0">&#41;</span>;</p>
<p>BtnA.<span class="me1">x</span> = <span class="nu0">160</span>;</p>
<p>BtnA.<span class="me1">y</span> = <span class="nu0">10</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnS<span class="br0">&#41;</span>;</p>
<p>BtnS.<span class="me1">x</span> = <span class="nu0">160</span>;</p>
<p>BtnS.<span class="me1">y</span> = <span class="nu0">44</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnM<span class="br0">&#41;</span>;</p>
<p>BtnM.<span class="me1">x</span> = <span class="nu0">160</span>;</p>
<p>BtnM.<span class="me1">y</span> = <span class="nu0">78</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnD<span class="br0">&#41;</span>;</p>
<p>BtnD.<span class="me1">x</span> = <span class="nu0">160</span>;</p>
<p>BtnD.<span class="me1">y</span> = <span class="nu0">112</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnE<span class="br0">&#41;</span>;</p>
<p>BtnE.<span class="me1">x</span> = <span class="nu0">110</span>;</p>
<p>BtnE.<span class="me1">y</span> = <span class="nu0">112</span>;</p>
<p>addChild<span class="br0">&#40;</span>Btn0<span class="br0">&#41;</span>;</p>
<p>Btn0.<span class="me1">x</span> = <span class="nu0">60</span>;</p>
<p>Btn0.<span class="me1">y</span> = <span class="nu0">112</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnC<span class="br0">&#41;</span>;</p>
<p>BtnC.<span class="me1">x</span> = <span class="nu0">10</span>;</p>
<p>BtnC.<span class="me1">y</span> = <span class="nu0">112</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnPN<span class="br0">&#41;</span>;</p>
<p>BtnPN.<span class="me1">x</span> = <span class="nu0">110</span>;</p>
<p>BtnPN.<span class="me1">y</span> = <span class="nu0">146</span>;</p>
<p>addChild<span class="br0">&#40;</span>BtnDec<span class="br0">&#41;</span>;</p>
<p>BtnDec.<span class="me1">x</span> = <span class="nu0">60</span>;</p>
<p>BtnDec.<span class="me1">y</span> = <span class="nu0">146</span>;</p>
<p><span class="coMULTI">/**********A cheap (not the best, but good enough for us) easy way to keep the display refreshing******/</span></p>
<p>addEventListener<span class="br0">&#40;</span>Event.<span class="me1">ENTER_FRAME</span>, <span class="kw3">OnEnterFrame</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">function</span> <span class="kw3">OnEnterFrame</span><span class="br0">&#40;</span>event:Event<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></p>
<p>&nbsp;digitDisplay.<span class="kw3">text</span> = Calc.<span class="me1">getDispNum</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp;<span class="co1">//returns a string</span></p>
<p><span class="br0">&#125;</span></div>
<p>So, now that we&#8217;ve made all the basic buttons, it&#8217;s time to get into the heart of this calculator.   Everything happens in one class I called <strong>Calc.</strong><br />
First of all I want to explain that I usually like to make public static constants for a lot of my strings that I want to use as a parameter because it makes it easier to debug if you make a typo.  You saw them being used when I created the instances of my operator buttons and here they are being declared in my <strong>Calc</strong> class:</p>
<div class="dean_ch" style="white-space: wrap;">package classes <span class="br0">&#123;</span></p>
<p><span class="kw3">public</span> <span class="kw2">class</span> Calc <span class="br0">&#123;</span></p>
<p>&nbsp;<span class="coMULTI">/*****Useing these makes debuging easier and is good practice****/</span></p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const <span class="kw3">ADD</span>:<span class="kw3">String</span> = <span class="st0">&quot;add&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const SUBTRACT:<span class="kw3">String</span> = <span class="st0">&quot;subtract&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const MULTIPLY:<span class="kw3">String</span> = <span class="st0">&quot;multiply&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const DIVIDE:<span class="kw3">String</span> = <span class="st0">&quot;divide&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const EQUALS:<span class="kw3">String</span> = <span class="st0">&quot;equals&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const <span class="kw3">CLEAR</span>:<span class="kw3">String</span> = <span class="st0">&quot;clear&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const DECIMAL:<span class="kw3">String</span> = <span class="st0">&quot;decimal&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const POS_NEG:<span class="kw3">String</span> = <span class="st0">&quot;positive/negative&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const <span class="kw3">SQRT</span>:<span class="kw3">String</span> = <span class="st0">&quot;sqrt&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const SQUARE:<span class="kw3">String</span> = <span class="st0">&quot;square&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const POWER:<span class="kw3">String</span> = <span class="st0">&quot;power&quot;</span>;</p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> const BACK:<span class="kw3">String</span> = <span class="st0">&quot;back&quot;</span>;&nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">var</span> <span class="kw3">isActive</span>:<span class="kw3">Boolean</span>; &nbsp;<span class="co1">//Used to tell me what to display, the total or the number being entered.</span></p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">var</span> activeNum:<span class="kw3">Number</span>; &nbsp;<span class="co1">//The number being entered.</span></p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">var</span> decVal:<span class="kw3">Number</span>;&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Used to place the next decimal at the Nth place.</span></p>
<p><span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">var</span> total:<span class="kw3">Number</span>;</p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">var</span> activeFunc:<span class="kw2">Function</span>; <span class="co1">//Points to the opporator function currently active.</span></p>
<p><span class="kw3">public</span> <span class="kw2">function</span> Calc<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> &nbsp;<span class="co1">//This constructor isn&#8217;t really used.</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;clearField<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> clearField<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span> &nbsp;<span class="co1">//Resets the calculator.</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;total = <span class="nu0">0</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;activeNum = <span class="nu0">0</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">isActive</span> = <span class="kw2">false</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;decVal = <span class="nu0">-1</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;activeFunc = addition;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="coMULTI">/*This meathod is called from the BaseFuncBtn class and is passed</p>
<p>&nbsp;the operator name of the key. &nbsp;Value received should be one of the</p>
<p>&nbsp;public constants declared earlier in this class.*/</span></p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> funcKey<span class="br0">&#40;</span>str:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></p>
<p><span class="kw1">switch</span><span class="br0">&#40;</span>str<span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;add&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; equals<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeFunc = addition;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;subtract&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; equals<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeFunc = subtraction;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;multiply&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; equals<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeFunc = multiplication;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;divide&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; equals<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeFunc = division;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;clear&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span> &nbsp;<span class="co1">//If you made a mistake while entering a number, this will forgive you a little.</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">isActive</span> = <span class="kw2">false</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeNum = <span class="nu0">0</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; clearField<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;equals&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">isActive</span> = <span class="kw2">true</span>; <span class="co1">//Set to &#8216;true&#8217; so you can repeat the last opperation over and over.</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; equals<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;decimal&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>decVal &lt; <span class="nu0">0</span><span class="br0">&#41;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decVal = <span class="nu0">0</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;positive/negative&quot;</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeNum *= <span class="nu0">-1</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total *= <span class="nu0">-1</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">default</span>:</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Something went wrong. &nbsp;String was: &quot;</span> + str<span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="coMULTI">/*Called from the stage and is used to display the current values*/</span></p>
<p>&nbsp;<span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> getDispNum<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">String</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span>decVal &lt; <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="kw3">String</span><span class="br0">&#40;</span>activeNum<span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="kw3">String</span><span class="br0">&#40;</span>total<span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*If decVal is &gt;= 0 then isActive WILL be true, so this code</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; here isn&#8217;t all needed. But, it&#8217;s not hurting anything either&#8230;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; The computer was rounding decimals off weird (i.e. instead of 2.3</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; it would have something like 2.300000012) so I need .toFixed() for</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; the active number being entered.*/</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="kw3">String</span><span class="br0">&#40;</span>activeNum.<span class="me1">toFixed</span><span class="br0">&#40;</span>decVal<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="kw3">String</span><span class="br0">&#40;</span>total.<span class="me1">toFixed</span><span class="br0">&#40;</span>decVal<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">function</span> equals<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; total = activeFunc<span class="br0">&#40;</span>total, activeNum<span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">isActive</span> = <span class="kw2">false</span>; &nbsp; <span class="co1">//Set to &#8216;false&#8217; so you can change your mind about the next opperation without re-calculating</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; decVal = <span class="nu0">-1</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">function</span> addition<span class="br0">&#40;</span>num1:<span class="kw3">Number</span>, num2:<span class="kw3">Number</span><span class="br0">&#41;</span>:<span class="kw3">Number</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span><span class="br0">&#40;</span>num1 + num2<span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">function</span> subtraction<span class="br0">&#40;</span>num1:<span class="kw3">Number</span>, num2:<span class="kw3">Number</span><span class="br0">&#41;</span>:<span class="kw3">Number</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span><span class="br0">&#40;</span>num1 &#8211; num2<span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">function</span> multiplication<span class="br0">&#40;</span>num1:<span class="kw3">Number</span>, num2:<span class="kw3">Number</span><span class="br0">&#41;</span>:<span class="kw3">Number</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span><span class="br0">&#40;</span>num1 * num2<span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">function</span> division<span class="br0">&#40;</span>num1:<span class="kw3">Number</span>, num2:<span class="kw3">Number</span><span class="br0">&#41;</span>:<span class="kw3">Number</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span><span class="br0">&#40;</span>num1 / num2<span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></div>
<p>Notice that almost everything in that class is STATIC.   This is so we don&#8217;t have to create an instance of the class to use them.   For example, in my <strong>OnEnterFrame</strong> function I used <strong>digitDisplay.text = Calc.getDispNum();</strong>  The <strong>digitDisplay</strong> is an instance of a textField that I put on the stage, while <strong>Calc</strong> is just my class.</p>
<p>The last thing that needs to be done is entering a little bit of code that needs to be run when you click a button.  That was some fun code to come up with (not really):</p>
<div class="dean_ch" style="white-space: wrap;"><span class="coMULTI">/******In the BaseDigitBtn class********/</span></p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw2">function</span> <span class="kw3">OnRelease</span><span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/*This just resets the active number before the next opperation. &nbsp;I don&#8217;t</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;want to erase the old active number till the last second so that I can</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;repeat the last opperation by pressing equals again.*/</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span>!Calc.<span class="kw3">isActive</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">activeNum</span> = <span class="nu0">0</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span>Calc.<span class="me1">decVal</span> &lt; <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>Calc.<span class="me1">activeNum</span> &gt;= <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">activeNum</span> = Calc.<span class="me1">activeNum</span> * <span class="nu0">10</span> + num;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">activeNum</span> = Calc.<span class="me1">activeNum</span> * <span class="nu0">10</span> &#8211; num;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>Calc.<span class="me1">decVal</span> &lt; <span class="nu0">20</span><span class="br0">&#41;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">decVal</span>++;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Decimals are annoying.</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>Calc.<span class="me1">activeNum</span> &gt;= <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">activeNum</span> = Calc.<span class="me1">activeNum</span> + <span class="br0">&#40;</span>num / <span class="kw3">Math</span>.<span class="kw3">pow</span><span class="br0">&#40;</span><span class="nu0">10</span>, Calc.<span class="me1">decVal</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc.<span class="me1">activeNum</span> = Calc.<span class="me1">activeNum</span> &#8211; <span class="br0">&#40;</span>num / <span class="kw3">Math</span>.<span class="kw3">pow</span><span class="br0">&#40;</span><span class="nu0">10</span>, Calc.<span class="me1">decVal</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Calc.<span class="kw3">isActive</span> = <span class="kw2">true</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></p>
<p><span class="coMULTI">/************And in the BaseFuncBtn class**********/</span></p>
<p>&nbsp;<span class="kw3">private</span> <span class="kw2">function</span> <span class="kw3">OnRelease</span><span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Calc.<span class="me1">funcKey</span><span class="br0">&#40;</span>str<span class="br0">&#41;</span>;</p>
<p>&nbsp;<span class="br0">&#125;</span></div>
<p>A quick explination of the BaseDigitBtn&#8217;s OnRelease function and then we are done:<br />
Entering numbers on a calculator always places the new digit to the far right.  That is easy to take care of by multiplying by 10 to shift what you have to the left and then adding your new number&#8230; untill you try to enter decimals.  With decimals you have to divide by the next highest power of 10 for every spot you move to the right and this can cause some rounding errors.  I take care of that in <strong>Calc.getDispNum();</strong> with the <strong>.toFixed()</strong> which will cut it off and not show the 12,000,000th of a unit that it&#8217;s off.</p>
<p><strong>You can download the source files for this tutorial here:</strong> <a href="http://www.clickpopmedia.com/wp-content/uploads/2008/03/calculator.zip" title="Calculator Flash Source">Calculator Flash Source</a></p>
<p>It shouldn&#8217;t take long at all to add a square root operator key or sin/cos/tan keys.  Try it yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clickpopmedia.com/2008/03/03/putting-static-to-good-use/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

