That was Doug that pointed out the memory leak potential, but what he was saying was to create the image and progress meter as a single component so that when you remove the component the progress meter goes with it and you don't have a hard memory ref that just hangs around forever and a day. You could try the simpler way first and refactor your code when and if memory becomes an issue, but Doug, as usual, makes a good point.

Gabsaga Tata wrote:
Douglas and Justin,
Thanks for the response. That's exactly what I was looking for. I'm sorry if this was so trivial but I've just been doing learning flex since this past Monday so today is my fifth day. Jason, as to your comment you made about memory leak, don't think I understand it quite well as far using a custom component since I'm new to flex. I guess with time it will all make sense. Thanks. Gabsaga
    -----Original Message-----
    *From:* Douglas Knudsen [mailto:[EMAIL PROTECTED]
    *Sent:* Friday, July 25, 2008 02:41 PM
    *To:* [email protected]
    *Subject:* Re: [AFFUG Discuss] ProgressBar question

    in ActionScript you manually add the listener
image.addEventListener( FlexEvent.CREATION_COMPLETE,
    completeHandler );

    need to be very careful with this though as it adds a hard memory
    reference.  If you removeChild(image) image will NOT get garbage
    collected and end in memory leak type situation.
I might end up creating a custom component, ImageWithLoader or
    some name, in your shoes.  Maybe use states to control showing the
    progressbar or not.  Depends on how many images you anticipate
    managing.
DK On Fri, Jul 25, 2008 at 2:35 PM, Gabsaga Tata
    <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

        Jason,
So will the code look like the following?

        var image:Image = new Image();


        image.source = list.selectedItem.photoUrl;
        image.maintainAspectRatio = true;
        image.width = 700;
        image.height = 600;
        image.creationComplete = completeHandler(event);
        photopanel.addChild(image);

        'cause I tried it and it didn't work. I know in the <mx:Image
        > tag I can specify complete="completeHandler(event)" but I'm
        trying to do it dynamically and not in the <mx:Image > tag.
Thanks. Gabsaga

            -----Original Message-----
            *From:* Jason Vanhoy [mailto:[EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]>]
            *Sent:* Friday, July 25, 2008 01:37 PM
            *To:* [email protected] <mailto:[email protected]>
            *Subject:* Re: [AFFUG Discuss] ProgressBar question

            Do what Justin said on CreationComplete of the image in
            question. Justin Haygood wrote: > >
            photopanel.removeChild(pgBar); ? > > > > Justin Haygood |
            Software Engineer | EyeWonder Atlanta > > Phone
            678-891-2031 | Mobile 404-271-2273 >
            [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> |
            aim - ewjhaygood > > *EyeWonder > Interactive Digital
            Advertising. Advance. > *http://www.eyewonder.com/ > > > >
            > > *From:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
            [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>] *On
            Behalf Of > *Gabsaga Tata > *Sent:* Friday, July 25, 2008
            12:51 PM > *To:* [email protected]
            <mailto:[email protected]> > *Subject:* Re: [AFFUG
            Discuss] ProgressBar question > > > > > > I tried that
            already and it didn't work. But I found an alternate way.
            > The only thing I'm trying to figure out why now is to
            remove the > progress bar from the panel when the image
            completely loads. Do you > know how I can do that? > > > >
            private var image:Image; > private var pgBar:ProgressBar;
            > > public function clickHandler(event:MouseEvent):void >
            { > if (image != null) > { >
            photopanel.removeChild(image); > } > > if (pgBar != null)
            > { > photopanel.removeChild(pgBar); > } > > pgBar = new
            ProgressBar(); > pgBar.mode = ProgressBarMode.POLLED; >
            pgBar.label = "Loaded %1 of %2 bytes, %3%%"; >
            pgBar.indeterminate = false; > > > image = new Image(); >
            image.source = list.selectedItem.photoUrl; >
            photopanel.addChild(image); > photopanel.addChild(pgBar);
            > pgBar.source = image; > } > > > private function
            completeHandler(event:Event):void > { > // remove the
            progress from the featured phototgraph panel > if (pgBar
            != null) > { > photopanel.removeChild(pgBar); > } > } > >
            > > Do you know how I can call the completeHandler
            function after the > image finishes loading? > > > > I
            know in mxml you can do like the following: > > > >
            complete="completeHandler(event)" /> > > But I'm trying to
            do it from the ActionScript which I haven't figured > out
            yet. > > > > Thanks. > > > > Gabsaga > > > > -----Original
            Message----- > *From:* Davy Strube
            [mailto:[EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]>] > *Sent:* Thursday, July
            24, 2008 10:43 PM > *To:* [EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]> > *Subject:* Re: [AFFUG
            Discuss] ProgressBar question > > Try this: > In the
            completeHandler, > photoLoadProgressBar.setProgress(0,1);
            > > I doubt this will work because the documentation says
            this method > is for mode=manual, but it's something to
            try. >
            
http://livedocs.adobe.com/flex/2/langref/mx/controls/ProgressBar.html
            > > -Davy > > On Thu, Jul 24, 2008 at 5:31 PM, Gabsaga
            Tata > > wrote: > > I am new to flex and I have developed
            this very simple application > with the source could
            included below. > > > > The problem I'm having is how to
            reset the progress bar. When the > first image is loaded
            in the Featured Photograph panel, the > progress bar shows
            the % complete as the image is being loaded. > So far, so
            good. > > > > But when the subsequent images are loaded,
            the progress bar does > not change. It just shows the last
            state after the first image > completely loaded. > > > >
            Is there a way to make it such that the progress bar shows
            the > progress of subsequent images being loaded? > > > >
            Thanks for any help in advance!! > > > Gabsaga > > > > > >
            ******************** Source Code ******************** > >
            > > > > xmlns:mx="http://www.adobe.com/2006/mxml";
            layout="vertical"> > > > > > > Panel { > >
            backgroundAlpha: 1; > > borderAlpha: 1; > > headerColors:
            #c7c7c7, #ffffff; > > footerColors: #ffffff, #c7c7c7; > >
            paddingTop: 15; > > paddingRight: 25; > > paddingLeft: 25;
            > > paddingBottom: 15; > > shadowDirection: "right"; > > }
            > > .header { > > color: #ffffff; > > fontSize: 15; > >
            fontWeight: "bold"; > > } > > > > > > > > > > > import
            mx.rpc.events.ResultEvent; > > import
            mx.rpc.events.FaultEvent; > > import mx.utils.ObjectUtil;
            > > import mx.controls.Alert; > > import
            mx.utils.StringUtil; > > > > private function
            resultHandler(event:ResultEvent):void > > { > > //used for
            debugging - shows details about result > > //returned by
            the Java class method > > > > //Alert.show(
            ObjectUtil.toString(event.result) ); > > } > > > > private
            function faultHandler(event:FaultEvent):void > > { > >
            Alert.show( ObjectUtil.toString(event.fault) ); > > } > >
            > > private function updateHandler(event:Event):void > > {
            > > remoteObj.updatePhoto(updatedPhoto); > >
            remoteObj.getPhotos(); > > } > > > > public function
            clickHandler(event:MouseEvent):void > > { > >
            image1.source = list.selectedItem.photoUrl; > >
            photoLoadProgressBar.visible = true; > >
            progressHandler(event); > > } > > > > private function
            completeHandler(event:Event):void > > { > > // make
            progress bar invisible > > photoLoadProgressBar.visible =
            false; > > } > > > > public function
            progressHandler(event:Event):void > > { > >
            photoLoadProgressBar.indeterminate=false; > > } > > > >
            ]]> > > > > > > result="resultHandler(event)"
            fault="faultHandler(event)" /> > > > > >
            photoId="{list.selectedItem.photoId}" > >
            photoUrl="{list.selectedItem.photoUrl}" > >
            photoDescription="{txtPhotoDescription.text}" /> > > > > >
            > > > width="800" height="350"> > > > >
            dataProvider="{remoteObj.getPhotos.lastResult}"
            width="100%" > height="80%" click="clickHandler(event)" >
            > > > > width="100" /> > > > > width="400" /> > > > > > >
            > > > > > > > >
            text="{list.selectedItem.photoDescription}" width="100%" >
            height="20%"/> > > > > > > > > > > source="image1"
            mode="polled" visible="false" label="Loaded %3%%" >
            labelWidth="400" labelPlacement="top" /> > > > > > > > > >
            > > > > > > > > height="400"> > > > >
            maintainAspectRatio="true"
            complete="completeHandler(event)" /> > > > > > > > > > > >
            > > > >
            -------------------------------------------------------------
            > To unsubscribe from this list, simply email the list
            with > unsubscribe in the subject line > > For more info,
            see http://www.affug.com/ > Archive @
            http://www.mail-archive.com/discussion%40affug.com/ > List
            hosted by FusionLink >
            -------------------------------------------------------------
            > > > > >
            -------------------------------------------------------------
            > To unsubscribe from this list, simply email the list
            with unsubscribe > in the subject line > > For more info,
            see http://www.affug.com/ > Archive @
            http://www.mail-archive.com/discussion%40affug.com/ > List
            hosted by FusionLink >
            -------------------------------------------------------------
            > > >
            -------------------------------------------------------------
            > To unsubscribe from this list, simply email the list
            with unsubscribe > in the subject line > > For more info,
            see http://www.affug.com/ > Archive @
            http://www.mail-archive.com/discussion%40affug.com/ > List
            hosted by FusionLink >
            -------------------------------------------------------------
            -------------------------------------------------------------
            To unsubscribe from this list, simply email the list with
            unsubscribe in the subject line For more info, see
            http://www.affug.com/ Archive @
            http://www.mail-archive.com/discussion%40affug.com/ List
            hosted by http://www.fusionlink.com/
            -------------------------------------------------------------


        -------------------------------------------------------------
        To unsubscribe from this list, simply email the list with
        unsubscribe in the subject line

        For more info, see http://www.affug.com/
        Archive @ http://www.mail-archive.com/discussion%40affug.com/
        List hosted by FusionLink <http://www.fusionlink.com/>
        -------------------------------------------------------------




-- Douglas Knudsen
    http://www.cubicleman.com <http://www.cubicleman.com/>
    this is my signature, like it?

    -------------------------------------------------------------
    To unsubscribe from this list, simply email the list with
    unsubscribe in the subject line

    For more info, see http://www.affug.com <http://www.affug.com/>
    Archive @ http://www.mail-archive.com/discussion%40affug.com/
    List hosted by FusionLink <http://www.fusionlink.com/>
-------------------------------------------------------------

-------------------------------------------------------------
To unsubscribe from this list, simply email the list with unsubscribe in the subject line

For more info, see http://www.affug.com
Archive @ http://www.mail-archive.com/discussion%40affug.com/
List hosted by FusionLink <http://www.fusionlink.com>
-------------------------------------------------------------


-------------------------------------------------------------
To unsubscribe from this list, simply email the list with unsubscribe in the 
subject line

For more info, see http://www.affug.com
Archive @ http://www.mail-archive.com/discussion%40affug.com/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------


Reply via email to