/ Published in: ActionScript 3
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
package kc.tda { import kc.api.IStack; import kc.events.CollectionEvent; [Event( name="addAll", type="kc.events.CollectionEvent" )] [Event( name="clear", type="kc.events.CollectionEvent" )] [Event( name="remove", type="kc.events.CollectionEvent" )] [Event( name="removeAll", type="kc.events.CollectionEvent" )] [Event( name="retain", type="kc.events.CollectionEvent" )] [Event( name="push", type="kc.events.CollectionEvent" )] [Event( name="pop", type="kc.events.CollectionEvent" )] public class ArrayStack extends ArrayCollection implements IStack { // @constructor public function ArrayStack( capacity:int = undefined, expandableCapacity:Boolean = false, loadFactor:Number = NaN ) { super( capacity, expandableCapacity, loadFactor ); _events = [ CollectionEvent.ADD_ALL, CollectionEvent.CLEAR, CollectionEvent.REMOVE, CollectionEvent.REMOVE_ALL, CollectionEvent.RETAIN, CollectionEvent.PUSH, CollectionEvent.POP ]; } // @override override public function add( value:* ):Boolean { return push( value ); } override public function remove( value:* ):Boolean { return ( value != null ) ? super.remove( value ) : ( pop() != null ) ? true : false; } // @methods public function element():* { ThrowIsEmpty(); return _records[0]; } public function peek():* { try{ var value:* = element(); }catch(e:Error){ return null; } return value; } public function push( value:* ):Boolean { if( ! ResolveStatus() ) { return false; } var quantity:int = size(); _records.unshift( value ); if( size() != quantity ){ ResolveDispatchEvent( CollectionEvent.PUSH ); return true; } return false; } public function pop():* { var quantity:int = size(); var value:* = _records.shift(); if( size() != quantity ) { ResolveDispatchEvent( CollectionEvent.POP ); return value; } return null; } } } // @INTERFACE package kc.api { public interface IStack extends ICollection { // @methods function element():*; function peek():*; function push(value:*):Boolean; function pop():*; } }
URL: http://www.kirikacode.com