Re: [Flashcoders] My first code.
Thank You So Much! :DI have been researching for over a month!! I am guessing that the 'this' is pointing to the symbol or _mc I attach the class to? I ended up doing away with all of the "this" because I was receiving an error message saying "gotoAndStop is not a function." Also I needed to declare the variable "buttonState" Here it is!!! My first Class! Thank you! ### package { import flash.display.MovieClip; import flash.events.MouseEvent; public class ToggleButton extends MovieClip { //public var togglButton:MovieClip; public var buttonState = MovieClip; public function ToggleButton() { // constructor code //event listeners addEventListener(MouseEvent.MOUSE_OVER, rolloverToggle); addEventListener(MouseEvent.MOUSE_OUT, rolloutToggle); addEventListener(MouseEvent.CLICK, toggleClick); buttonState = "off"; // Respond to mouse events function rolloverToggle(event:MouseEvent) { gotoAndStop(buttonState+" over"); } //rollover f(x) function rolloutToggle(event:MouseEvent) { gotoAndStop(buttonState); } //rollout f(x) function toggleClick(event:MouseEvent) { if (buttonState == "on") { buttonState = "off"; } //if else { buttonState = "on"; } //else gotoAndStop(buttonState+" over"); } //toggle click f(x) } //constructor f(x) } //class } //package # ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] My first code.
On 15/12/2010 23:53, spyder spyders wrote: HELLO FlashCoders! I am trying to write a ToggleButton Class.I can get it to work as a document class and as as3 on timeline. But how to I use it as a symbol class? Everywhere you have "toggleButton" replace it with "this" or remove it altogether. In the linkage for the MovieClip that represents the toggle, put this class. Paul Thx! / package { import flash.display.MovieClip; import flash.events.MouseEvent; public class ToggleButton extends MovieClip { public var toggleButton:MovieClip; public function ToggleButton() { // constructor code //event listeners toggleButton.addEventListener(MouseEvent.MOUSE_OVER, rolloverToggle); toggleButton.addEventListener(MouseEvent.MOUSE_OUT, rolloutToggle); toggleButton.addEventListener(MouseEvent.CLICK, toggleClick); toggleButton.buttonState = "off"; // Respond to mouse events function rolloverToggle(event:MouseEvent) { toggleButton.gotoAndStop(toggleButton.buttonState+" over"); } //rollover f(x) function rolloutToggle(event:MouseEvent) { toggleButton.gotoAndStop(toggleButton.buttonState); } //rollout f(x) function toggleClick(event:MouseEvent) { if (toggleButton.buttonState == "on") { toggleButton.buttonState = "off"; } //if else { toggleButton.buttonState = "on"; } //else toggleButton.gotoAndStop(toggleButton.buttonState+" over"); } //toggle click f(x) } //constructor f(x) } //class } //package / ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
[Flashcoders] My first code.
HELLO FlashCoders! I am trying to write a ToggleButton Class.I can get it to work as a document class and as as3 on timeline. But how to I use it as a symbol class? Thx! / package { import flash.display.MovieClip; import flash.events.MouseEvent; public class ToggleButton extends MovieClip { public var toggleButton:MovieClip; public function ToggleButton() { // constructor code //event listeners toggleButton.addEventListener(MouseEvent.MOUSE_OVER, rolloverToggle); toggleButton.addEventListener(MouseEvent.MOUSE_OUT, rolloutToggle); toggleButton.addEventListener(MouseEvent.CLICK, toggleClick); toggleButton.buttonState = "off"; // Respond to mouse events function rolloverToggle(event:MouseEvent) { toggleButton.gotoAndStop(toggleButton.buttonState+" over"); } //rollover f(x) function rolloutToggle(event:MouseEvent) { toggleButton.gotoAndStop(toggleButton.buttonState); } //rollout f(x) function toggleClick(event:MouseEvent) { if (toggleButton.buttonState == "on") { toggleButton.buttonState = "off"; } //if else { toggleButton.buttonState = "on"; } //else toggleButton.gotoAndStop(toggleButton.buttonState+" over"); } //toggle click f(x) } //constructor f(x) } //class } //package / ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] problem with adding two digits
Oh yeah, I forgot to give some examples to test it with, so... trace(floatSum(-0.1,0.9155,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1)); //vs trace(-0.1+0.9155+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1); //and trace(floatProduct(2.1,0.1,1.0001,.0001)); //vs trace(2.1*0.1*1.0001*.0001); On 12/15/2010 2:25 PM, Anthony Pace wrote: I wrote the functions below in literally just a few min, so, even though they do seem to work for me, I wouldn't necessarily say they are production ready. Also, I would only use these if you will know that the numbers past the mantissa are of small amounts. Oh yeah, and please tell me if I screwed up somewhere, or if you think you can do it better :) function floatProduct(... nums){ var ml:int = 0; //max length past mantissa var ln:uint = nums.length; var rsl:int; //right side length var p:Number = 1; var s:String; for (var i:uint = 0; i< ln; ++i) { s = nums[i].toString(); rsl = s.length - s.indexOf('.'); ml += rsl; p *= nums[i]; } return Number(p.toFixed(ml)); } function floatSum(... nums){ var ml:int = 0; //max length past mantissa var ln:uint = nums.length; var rsl:int; //right side length var p:Number = 0; var s:String; for (var i:int = 0; i< ln; ++i) { s = nums[i].toString(); rsl = s.length - s.indexOf('.'); if (rsl > ml) { ml = rsl; } p += nums[i]; } return Number(p.toFixed(ml)); } - On 12/14/2010 12:05 PM, Kerry Thompson wrote: Adrian Zając wrote: trace (0.27 + 0.03); // output --> 0.30004 Can anyone tell me why I get this weird result in output window? As people have said, it's a problem with decimals. It's not a problem with Flash--it's a problem with binary numbers. Integers are accurate because all integers are a multiple of 1, and binary does just fine with combining 0's and 1's, the only possibile values of a digit in the binary system. If you think of decimals as fractions, maybe it will help you understand the issue. In binary, a digit can only be a multiple of 2: 1/2, 1/4, 1/8/ 1/16, 1/32, and so on. You can create numbers that aren't multiples of two by adding multiple digits. For example, 1/4 + 1/8 = 3/8, or .375. This works pretty well, until you get numbers with a lot of decimal places. At some point, you will find a decimal that is impossible to make using powers of 2. Cordially, Kerry Thompson ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] problem with adding two digits
I wrote the functions below in literally just a few min, so, even though they do seem to work for me, I wouldn't necessarily say they are production ready. Also, I would only use these if you will know that the numbers past the mantissa are of small amounts. Oh yeah, and please tell me if I screwed up somewhere, or if you think you can do it better :) function floatProduct(... nums){ var ml:int = 0; //max length past mantissa var ln:uint = nums.length; var rsl:int; //right side length var p:Number = 1; var s:String; for (var i:uint = 0; i< ln; ++i) { s = nums[i].toString(); rsl = s.length - s.indexOf('.'); ml += rsl; p *= nums[i]; } return Number(p.toFixed(ml)); } function floatSum(... nums){ var ml:int = 0; //max length past mantissa var ln:uint = nums.length; var rsl:int; //right side length var p:Number = 0; var s:String; for (var i:int = 0; i< ln; ++i) { s = nums[i].toString(); rsl = s.length - s.indexOf('.'); if (rsl > ml) { ml = rsl; } p += nums[i]; } return Number(p.toFixed(ml)); } - On 12/14/2010 12:05 PM, Kerry Thompson wrote: Adrian Zając wrote: trace (0.27 + 0.03); // output --> 0.30004 Can anyone tell me why I get this weird result in output window? As people have said, it's a problem with decimals. It's not a problem with Flash--it's a problem with binary numbers. Integers are accurate because all integers are a multiple of 1, and binary does just fine with combining 0's and 1's, the only possibile values of a digit in the binary system. If you think of decimals as fractions, maybe it will help you understand the issue. In binary, a digit can only be a multiple of 2: 1/2, 1/4, 1/8/ 1/16, 1/32, and so on. You can create numbers that aren't multiples of two by adding multiple digits. For example, 1/4 + 1/8 = 3/8, or .375. This works pretty well, until you get numbers with a lot of decimal places. At some point, you will find a decimal that is impossible to make using powers of 2. Cordially, Kerry Thompson ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders