# Anyone good at custom Event?

**URL:** <https://forum.kirupa.com/t/anyone-good-at-custom-event/297166>\
**Category:** Uncategorized\
**Created:** [September 26, 2009, 5:23pm UTC](https://forum.kirupa.com/t/anyone-good-at-custom-event/297166 "2009-09-26T17:23:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![wonsong82](https://avatars.discourse-cdn.com/v4/letter/w/22d042/32.png) [@wonsong82](https://forum.kirupa.com/u/wonsong82)\
**Post date:** [September 26, 2009, 5:23pm UTC](https://forum.kirupa.com/t/anyone-good-at-custom-event/297166/1 "2009-09-26T17:23:26Z")

</div>

this is a custom class that loads the fonts.

```
ActionScript Code:
[LEFT]&lt;[LEFT][COLOR=#808080]*//FontLoader.as*[/COLOR]

```

package won.[COLOR=#0000FF]text[/COLOR]  
[COLOR=#000000]{[/COLOR]  
[COLOR=#0000FF]import[/COLOR] flash.[COLOR=#000080]events[/COLOR]._;  
[COLOR=#0000FF]import[/COLOR] flash.[COLOR=#000080]net[/COLOR]._;  
[COLOR=#0000FF]import[/COLOR] flash.[COLOR=#000080]display[/COLOR].\*;

```
[COLOR=#0000FF]public[/COLOR] [COLOR=#000000] **class** [/COLOR] FontLoader
[COLOR=#000000]{[/COLOR]
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **var** [/COLOR] i:[COLOR=#0000FF]int[/COLOR];
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **var** [/COLOR] l:[COLOR=#0000FF]Array[/COLOR];
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **var** [/COLOR] c:[COLOR=#000000] **Function** [/COLOR];            
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **var** [/COLOR] p:[COLOR=#0000FF]Number[/COLOR] = [COLOR=#000080]0[/COLOR]; 
    
    [COLOR=#0000FF]public[/COLOR] [COLOR=#000000] **function** [/COLOR] FontLoader[COLOR=#000000]([/COLOR]$list:[COLOR=#0000FF]Array[/COLOR], $param:[COLOR=#0000FF]Object[/COLOR][COLOR=#000000])[/COLOR]
    [COLOR=#000000]{[/COLOR]
        i=-[COLOR=#000080]1[/COLOR];
        l=$list;
        c = [COLOR=#000000]([/COLOR]$param.[COLOR=#000080]onComplete[/COLOR][COLOR=#000000])[/COLOR] ? $param.[COLOR=#000080]onComplete[/COLOR] : [COLOR=#000000] **function** [/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR][COLOR=#000000]}[/COLOR];                            
    [COLOR=#000000]}[/COLOR]
    
    [COLOR=#0000FF]public[/COLOR] [COLOR=#000000] **function** [/COLOR] [COLOR=#0000FF]load[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]:[COLOR=#0000FF]void[/COLOR]
    [COLOR=#000000]{[/COLOR]
        loadFont[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];
    [COLOR=#000000]}[/COLOR]
    
    [COLOR=#0000FF]public[/COLOR] [COLOR=#000000] **function** [/COLOR] [COLOR=#0000FF]get[/COLOR] percent[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]:[COLOR=#0000FF]Number[/COLOR]
    [COLOR=#000000]{[/COLOR]
        [COLOR=#0000FF]return[/COLOR] p;
    [COLOR=#000000]}[/COLOR]
                    
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **function** [/COLOR] loadFont[COLOR=#000000]([/COLOR][COLOR=#0000FF]e[/COLOR]:Event=[COLOR=#000000] **null** [/COLOR][COLOR=#000000])[/COLOR]:[COLOR=#0000FF]void[/COLOR]
    [COLOR=#000000]{[/COLOR]
        i++;
        [COLOR=#000000]([/COLOR]i&gt;l.[COLOR=#000080]length[/COLOR]-[COLOR=#000080]1[/COLOR][COLOR=#000000])[/COLOR] ? exit[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR] : process[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];
    [COLOR=#000000]}[/COLOR]
    
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **function** [/COLOR] process[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]:[COLOR=#0000FF]void[/COLOR]
    [COLOR=#000000]{[/COLOR]            
        [COLOR=#000000] **var** [/COLOR] loader:Loader = [COLOR=#000000] **new** [/COLOR] Loader[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];            
        loader.[COLOR=#000080]contentLoaderInfo[/COLOR].[COLOR=#000080]addEventListener[/COLOR][COLOR=#000000]([/COLOR]ProgressEvent.[COLOR=#000080]PROGRESS[/COLOR], calculateProgress[COLOR=#000000])[/COLOR];
        loader.[COLOR=#000080]contentLoaderInfo[/COLOR].[COLOR=#000080]addEventListener[/COLOR][COLOR=#000000]([/COLOR]Event.[COLOR=#000080]COMPLETE[/COLOR], loadFont[COLOR=#000000])[/COLOR];
        loader.[COLOR=#0000FF]load[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000] **new** [/COLOR] URLRequest[COLOR=#000000]([/COLOR]l[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000])[/COLOR];                    
    [COLOR=#000000]}[/COLOR]
    
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **function** [/COLOR] calculateProgress[COLOR=#000000]([/COLOR][COLOR=#0000FF]e[/COLOR]:ProgressEvent[COLOR=#000000])[/COLOR]:[COLOR=#0000FF]void[/COLOR]
    [COLOR=#000000]{[/COLOR]            
        p = [COLOR=#000000]([/COLOR]i/l.[COLOR=#0000FF]length[/COLOR][COLOR=#000000])[/COLOR] + [COLOR=#000000]([/COLOR][COLOR=#000000]([/COLOR][COLOR=#0000FF]e[/COLOR].[COLOR=#0000FF]bytesLoaded[/COLOR]/[COLOR=#0000FF]e[/COLOR].[COLOR=#0000FF]bytesTotal[/COLOR][COLOR=#000000])[/COLOR]/l.[COLOR=#0000FF]length[/COLOR][COLOR=#000000])[/COLOR];
    [COLOR=#000000]}[/COLOR]
    
    [COLOR=#0000FF]private[/COLOR] [COLOR=#000000] **function** [/COLOR] exit[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]:[COLOR=#0000FF]void[/COLOR]
    [COLOR=#000000]{[/COLOR]
        c[COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR];
    [COLOR=#000000]}[/COLOR]    
[COLOR=#000000]}[/COLOR]

```

[COLOR=#000000]}[/COLOR]  
[/LEFT]

[/LEFT]

How do i add “addEventListener” to this custom class?  
i want to add Two addEventListener,

1. when the 'calculateProgress is function is modifying ‘p’ property, i want the flash document to get that number for each update.

2. when the loading is complete, i want to trigger the oncomplete function. i did this by passing the function to the object parameter, but i would like to use addEventListener.  
here the following code is the way i achieved this.

[COLOR=#000000] **var** [/COLOR] [COLOR=#0000FF]list[/COLOR]:[COLOR=#0000FF]Array[/COLOR] = [COLOR=#000000][[/COLOR][COLOR=#FF0000]“pastelar.swf”[/COLOR],[COLOR=#FF0000]“frankGothicBook.swf”[/COLOR][COLOR=#000000]][/COLOR];  
[COLOR=#000000] **var** [/COLOR] loader:FontLoader = [COLOR=#000000] **new** [/COLOR] FontLoader[COLOR=#000000]([/COLOR][COLOR=#0000FF]list[/COLOR], [COLOR=#000000]{[/COLOR]onComplete:done[COLOR=#000000]}[/COLOR][COLOR=#000000])[/COLOR];  
loader.[COLOR=#0000FF]load[/COLOR]COLOR=#000000[/COLOR];

addEventListener[COLOR=#000000]([/COLOR]Event.[COLOR=#000080]ENTER\_FRAME[/COLOR], loop[COLOR=#000000])[/COLOR];  
[COLOR=#000000] **function** [/COLOR] loopCOLOR=#000000[/COLOR]:[COLOR=#0000FF]void[/COLOR]  
[COLOR=#000000]{[/COLOR]  
[COLOR=#0000FF]trace[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]

[COLOR=#000000] **function** [/COLOR] doneCOLOR=#000000[/COLOR]:[COLOR=#0000FF]void[/COLOR][COLOR=#000000]{[/COLOR]  
removeEventListener[COLOR=#000000]([/COLOR]Event.[COLOR=#000080]ENTER\_FRAME[/COLOR], loop[COLOR=#000000])[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[/LEFT]

[/LEFT]

but instead doing that, i wanna be able to this.  
ActionScript Code:  
ActionScript Code:  
[LEFT][LEFT][COLOR=#0000FF]import[/COLOR] won.[COLOR=#0000FF]text[/COLOR].\*;

[COLOR=#000000] **var** [/COLOR] [COLOR=#0000FF]list[/COLOR]:[COLOR=#0000FF]Array[/COLOR] = [COLOR=#000000][[/COLOR][COLOR=#FF0000]“pastelar.swf”[/COLOR],[COLOR=#FF0000]“frankGothicBook.swf”[/COLOR][COLOR=#000000]][/COLOR];  
[COLOR=#000000] **var** [/COLOR] loader:FontLoader = [COLOR=#000000] **new** [/COLOR] FontLoaderCOLOR=#000000[/COLOR];  
loader.[COLOR=#000080]addEventListener[/COLOR][COLOR=#000000]([/COLOR]FontLoaderEvent.[COLOR=#000080]PROGRESS[/COLOR], displayPercentLoaded[COLOR=#000000])[/COLOR];  
loader.[COLOR=#000080]addEventListener[/COLOR][COLOR=#000000]([/COLOR]FontLoaderEvent.[COLOR=#000080]COMPLETE[/COLOR], init[COLOR=#000000])[/COLOR];  
loader.[COLOR=#0000FF]load[/COLOR]COLOR=#000000[/COLOR];

[COLOR=#000000] **function** [/COLOR] COLOR=#000000[/COLOR]:[COLOR=#0000FF]void[/COLOR]  
[COLOR=#000000]{[/COLOR]  
[COLOR=#0000FF]trace[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]

[COLOR=#000000] **function** [/COLOR] initCOLOR=#000000[/COLOR]:[COLOR=#0000FF]void[/COLOR]  
[COLOR=#000000]{[/COLOR]  
[COLOR=#0000FF]trace[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[/LEFT]

[/LEFT]

i tried to search online, read books, etc for custom events, but  
it was hard to grasp the concept.  
can someone please help?
