after a quick glance i'd recommend a couple of things:

see if you can break your application into smaller chunks that interact with
each other rather than have a single class - one of the benefits of oop is
being able to visualise the problem as distinct tasks that are handled by
separate objects (classes)

second is just naming conventions - generally only classes should start with
a capital letter - instances (like CityList and PhotoArray) should be camel
case (cityList and photoArray). My own personal preference is to prefix with
the object type (listCities and arPhotos), much like hungarian notation but
there's discussion about how relevant that is in these days of proper coding
environments with automatic code completion (like FlashDevelop and FDT).

It's also considered good form for method names to be verbs (getVariable(),
handleEvent(), completeSetup()) although many people like to make their
event handlers follow the form onEnterFrame() / onMouseEvent() (i use
handleEventname() for mine)

You should try to give values to your class variables in the constructor /
init method or when they're needed if possible. An instance of
myCloseBtn:Button that is added when the variable is declared and then is
never used is memory / cpu wasted

i'll be looking through the code a bit closer when i get a chance - i'm sure
there's others here who will comment as well

best
a

On 7 July 2010 07:45, J.C. Berry <[email protected]> wrote:

> Hello all,
> I wondered if I could bother you to review the code below and make comments
> and suggestions. It's my first full attempt (from scratch) to create a
> class. I would appreciate any comments you would like to make. Thanks. Oh,
> and to get an idea of how it looks, the project is located at
> http://www.fjroadtrip.com
> Thanks!
>
>
> package{
>    import fl.controls.TextArea;
>    import fl.containers.ScrollPane;
>    import fl.controls.Button;
>    import flash.display.*;
>    import flash.events.Event;
>    import flash.events.MouseEvent;
>    import flash.net.URLRequest;
>    import flash.net.URLLoader;
>    import fl.managers.StyleManager;
>
>    public class DynaMap extends MovieClip{
>        XML.ignoreWhitespace = false;
>        private var myXML:XML;
>        private var myXMLLoaderReq:URLRequest;
>        private var myXMLLoader:URLLoader;
>        private var CityList:XMLList;
>        private var CityNum:Number = 0;
>        private var PhotoArray:Array;
>        private var CurrPhoto:Number = 0;
>        private var NumOfCities:Number;
>        private var myWin:ScrollPane = new ScrollPane();
>        private var DayPicURLReq:URLRequest;
>        private var myWinLoader:Loader = new Loader();
>        private var tbaInstance;
>        private var CityTextBox:TextArea = new TextArea();
>        private var myCloseBtn:Button = new Button();//closebtn
>        private    var myNextBtn:Button = new Button();//nextbtn
>
>        public function DynaMap(){
>            myXMLLoaderReq = new URLRequest('cities.xml');
>            myXMLLoader = new URLLoader(myXMLLoaderReq);
>            myXMLLoader.addEventListener(Event.COMPLETE, xmlLoaded);
>        }
>        private function xmlLoaded(e:Event):void{
>            myXML = new XML(myXMLLoader.data);
>            CityList = new XMLList(myXML.city);
>            NumOfCities = CityList.length();
>            //initStage(cityList,0);
>            for(var i=0;i<NumOfCities;i++){
>                CityNum = i;
>                var DynaBtn = root['city'+CityNum+'_mc'];
>                DynaBtn.gotoAndStop(1);
>
>
> DynaBtn.addEventListener(MouseEvent.MOUSE_OVER,DynaBtnRollOverHandler(CityNum));
>
> DynaBtn.addEventListener(MouseEvent.MOUSE_OUT,DynaBtnRollOutHandler);
>            }
>        }
>        private function ClearScreen(){
>            for (var k:int =0; k < numChildren; k++){
>
> if(getChildAt(k).name.indexOf('Popout')>-1)removeChildAt(k);
>            }
>        }
>        private function PopoutImgListener(e:Event):void{
>            e.target.content.x = -93;
>            e.target.content.y = -47;
>            e.target.content.alpha = 0;
>            tbaInstance.addChild(e.target.content);
>        }
>        private function DynaBtnRollOverHandler(cityNum){
>            return function(){
>                root['city'+cityNum+'_mc'].gotoAndStop(2);
>                ClearScreen();
>                var PopoutContentLoader:Loader = new Loader();
>                var PopoutContentListener:Object = {};
>                if(cityNum > 25){
>                    tbaInstance = new tba2();
>                    tbaInstance.x = root['city'+cityNum+'_mc'].x-105;
>                    tbaInstance.y = root['city'+cityNum+'_mc'].y-55;
>                    tbaInstance.name = 'cityPopout'+cityNum+'_mc';
>                    addChild(tbaInstance);
>                }else{
>                    tbaInstance = new tba();
>                    tbaInstance.x = root['city'+cityNum+'_mc'].x+99;
>                    tbaInstance.y = root['city'+cityNum+'_mc'].y-55;
>                    tbaInstance.name = 'cityPopout'+cityNum+'_mc';
>                    addChild(tbaInstance);
>                }
>
>
> PopoutContentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,PopoutImgListener);
>                var pictURLReq:URLRequest = new URLRequest('images/' +
> CityList[cityNum].images);
>                PopoutContentLoader.load(pictURLReq);
>                //XML.ignoreWhitespace = false;
>                PhotoArray = CityList[cityNum].gallery.split(',');
>                if(PhotoArray.length > 0){
>
>
> tbaInstance.addEventListener(Event.ENTER_FRAME,EnterFrameListener(cityNum));
>
> tbaInstance.addEventListener(MouseEvent.MOUSE_UP,ClickPopoutListener);
>
> //tbaInstance.addEventListener(MouseEvent.MOUSE_OUT,ClearScreen);
>                }
>                with(CityTextBox){
>                x = -11;
>                y = -53;
>                width = 98;
>                height = 105;
>                selectable = true;
>                alpha = 0;
>                wordWrap = true;
>                verticalScrollPolicy = 'off';
>                horizontalScrollPolicy = 'off';
>                }
>                tbaInstance.addChild(CityTextBox);
>            }
>        }
>        private function DynaBtnRollOutHandler(e:Event):void{
>            e.target.gotoAndStop(1);
>        }
>        private function EnterFrameListener(cityNum){
>            return function(){
>                if(tbaInstance.currentFrame == 8){
>                    tbaInstance.getChildAt(1).alpha =
> tbaInstance.getChildAt(2).alpha = 1;
>                    tbaInstance.getChildAt(1).htmlText = '<b>' +
> CityList[cityNum].name + '</b><br>' + CityList[cityNum].blurb;
>
> tbaInstance.removeEventListener(Event.ENTER_FRAME,EnterFrameListener);
>                }
>            }
>        }
>        private function ClickPopoutListener(e:Event){
>            if(PhotoArray.length > 0 && PhotoArray[0].toString()!=''){
>                removeChild(tbaInstance);//delete popout
>                myWin.setSize(425, 435);
>                myWin.move(0,0);
>                addChild(myWin);
>                CurrPhoto = 0;
>                if(PhotoArray[CurrPhoto].indexOf('*') > -1){
>                    DayPicURLReq = new URLRequest('images/' +
> PhotoArray[CurrPhoto].substring(0,PhotoArray[CurrPhoto].length-1));
>
>
> myWinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,GalleryLoaded);
>                    myWinLoader.load(DayPicURLReq);
>                    myWin.addChild(myWinLoader);
>                }else{
>                    DayPicURLReq = new URLRequest('images/' +
> PhotoArray[CurrPhoto].substring(0,PhotoArray[CurrPhoto].length));
>
>
> myWinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,GalleryLoaded);
>                    myWinLoader.load(DayPicURLReq);
>                    myWin.addChild(myWinLoader);
>                }
>            }
>        }
>        private function GalleryLoaded(e:Event){
>            if(CurrPhoto<PhotoArray.length-1){
>                if(PhotoArray[CurrPhoto].indexOf('*') > -1){
>                    e.target.content.y = 0;
>                    e.target.content.x = 68;
>                    myCloseBtn.setSize(45,22);
>                    myCloseBtn.label = 'close';
>                    myCloseBtn.move(310,0);
>                    addChild(myCloseBtn);
>
> myCloseBtn.addEventListener(MouseEvent.MOUSE_UP,CloseGalleryWin);
>                    myNextBtn.label = 'next';
>                    myNextBtn.setSize(50,22);
>                    myNextBtn.move(260,0);
>                    addChild(myNextBtn);
>
> myNextBtn.addEventListener(MouseEvent.MOUSE_UP,NextPicListener);//next in
> gallery
>                }else{
>                    e.target.content.y = 60;
>                    e.target.content.x = 0;
>                    myCloseBtn.setSize(45,22);
>                    myCloseBtn.label = 'close';
>                    myCloseBtn.move(376,60);
>                    addChild(myCloseBtn);
>
> myCloseBtn.addEventListener(MouseEvent.MOUSE_UP,CloseGalleryWin);
>                    myNextBtn.label = 'next';
>                    myNextBtn.setSize(50,22);
>                    myNextBtn.move(325,60);
>                    addChild(myNextBtn);
>
> myNextBtn.addEventListener(MouseEvent.MOUSE_UP,NextPicListener);//next in
> gallery
>                }
>            }else{
>                if(PhotoArray[CurrPhoto].indexOf('*') > -1){
>                    e.target.content.y = 0;
>                    e.target.content.x = 68;
>                    myCloseBtn.setSize(45,22);
>                    myCloseBtn.label = 'close';
>                    myCloseBtn.move(310,0);
>                    addChild(myCloseBtn);
>
> myCloseBtn.addEventListener(MouseEvent.MOUSE_UP,CloseGalleryWin);
>                    //removeChild(myNextBtn);
>                }else{
>                    e.target.content.y = 60;
>                    e.target.content.x = 0;
>                    myCloseBtn.setSize(45,22);
>                    myCloseBtn.label = 'close';
>                    myCloseBtn.move(376,60);
>                    addChild(myCloseBtn);
>
> myCloseBtn.addEventListener(MouseEvent.MOUSE_UP,CloseGalleryWin);
>                    //removeChild(myNextBtn);
>                }
>            }
>        }
>        private function CloseGalleryWin(e:Event){
>            removeChild(myWin);
>            removeChild(myCloseBtn);
>            removeChild(myNextBtn);
>        }
>        private function NextPicListener(e:Object):void{
>            removeChild(myCloseBtn);
>            removeChild(myNextBtn);
>            CurrPhoto++;
>            if(CurrPhoto<=PhotoArray.length-1){
>                if(PhotoArray[CurrPhoto].indexOf('*') > -1){
>                    DayPicURLReq = new URLRequest('images/' +
> PhotoArray[CurrPhoto].substring(0,PhotoArray[CurrPhoto].length-1));
>
>
> myWinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,GalleryLoaded);
>                    myWinLoader.load(DayPicURLReq);
>                }else{
>                    DayPicURLReq = new URLRequest('images/' +
> PhotoArray[CurrPhoto].substring(0,PhotoArray[CurrPhoto].length));
>
>
> myWinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,GalleryLoaded);
>                    myWinLoader.load(DayPicURLReq);
>                }
>            }
>        }
>    }
> }
>
> --
> J.C. Berry, M.A.
> UI Developer
> 619.306.1712(m)
> [email protected]
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to