I use this for objects only needed in the scope of that particular class.
I don't know if this is "the best solution"...
I guess this depends on what you are trying to achieve.
It works for me.

Regards
Cor

On 27 May 2013 12:24, Paul A. <p...@ipauland.com> wrote:

> Out of curiosity, has anyone on the list actually used private classes 
> for anything other than enforcing singleton creation?
>
> If you have, please tell us and say why it was the best solution.
>
>
>
> On 27/05/2013 06:50, Cor wrote:
>
>> I think they can be usefull to create objects with a lot of its own 
>> functionality.
>> In fact the same as you use a public classes: create objects, and you 
>> can polymorphism the objects to your needs.
>> I also think this will keep your code more readable and clean.
>> HTH
>> Cor
>>
>> -----Original Message-----
>> From: 
>> flashcoders-bounces@chattyfig.**figleaf.com<flashcoders-bounces@chatt
>> yfig.figleaf.com> 
>> [mailto:flashcoders-bounces@**chattyfig.figleaf.com<flashcoders-bounc
>> e...@chattyfig.figleaf.com>]
>> On Behalf Of Karl
>> DeSaulniers
>> Sent: maandag 27 mei 2013 1:22
>> To: Flash Coders List
>> Subject: Re: [Flashcoders] AS3 finally..
>>
>> Thanks Ktu. That actually makes sense. I was not looking for a reason 
>> necessarily to use a private class, but more so, saw this example and 
>> had the though "this must be a private class" and wanted to verify 
>> for my own understanding. Which you have provided. I see and 
>> understand what you mean by it is not the most necessary thing to 
>> create a private namespace class and that I will more then likely be 
>> able to accomplish what i need through regular classes and never need 
>> to set a private class up. Thank you for the clarification.
>>
>> Well. Finished Perkins, on to Moock.
>> Actually getting excited... LoL
>>
>> Thanks again,
>>
>> Best,
>> Karl
>>
>> Sent from losPhone
>>
>> On May 26, 2013, at 10:40 AM, ktu 
>> <ktu_flash@cataclysmicrewind.**com<ktu_fl...@cataclysmicrewind.com>>
>> wrote:
>>
>>  yes. this is an example of a private class. but as someone earlier
>>> mentioned, you shouldn't ever _need_ to use them. and it would be 
>>> more appropriate not to use them in production code. using the 
>>> internal namespace gives you some restriction, and you could even 
>>> use your own namespace for restriction but that's quite uncommon as well.
>>>
>>> for reference..
>>> - you cannot add a namespace to this 'private' class and should 
>>> result in a compile error if you do. (ex. public class CustomClient) 
>>> therefore, it must always be defined as 'class ClassName' with no
>>>
>> namespace.
>>
>>> - any classes that you need within this 'private' class must be 
>>> imported outside the package package com {
>>>    // code
>>> }
>>> import flash.display.Sprite
>>> class MySprite {
>>>    // code
>>> }
>>> - and if some outside object gets a reference to it, you should be 
>>> able to access public functions and properties so long as you do not 
>>> try to cast the object as anything other than Object.
>>>
>>> in my experience, i have yet to feel the need for a pseudo 'private'
>>>
>> class.
>>
>>> the internal namespace serves me well most and in a few occasions a 
>>> custom namespace was required.
>>>
>>> good luck :)
>>>
>>>
>>> On Sun, May 26, 2013 at 6:58 AM, Karl DeSaulniers
>>>
>> <k...@designdrumm.com>wrote:
>>
>>> Ok, I am understanding things a little better I believe. Quick
>>>> question to solidify some knowledge. In reference to my question 
>>>> about a private class, is the class CustomClient at the bottom an 
>>>> example of a private class? It was mentioned that even if you don't 
>>>> have the word private there and don't put public, flash 
>>>> automatically will interpret it as a private class. It is inside 
>>>> the class file but outside the package for the main class (which 
>>>> was also mentioned), it does not have public on it so you can't 
>>>> call it outside this file. This
>>>>
>>> is what a private class is, correct?
>>
>>> package {
>>>>     import flash.display.Sprite;
>>>>     import flash.events.NetStatusEvent;
>>>>     import flash.events.**SecurityErrorEvent;
>>>>     import flash.media.Video;
>>>>     import flash.net.NetConnection;
>>>>     import flash.net.NetStream;
>>>>     import flash.events.Event;
>>>>
>>>>     public class NetConnectionExample extends Sprite {
>>>>         private var videoURL:String = "
>>>> http://www.helpexamples.com/**flash/video/cuepoints.flv<http://www.
>>>> helpexamples.com/flash/video/cuepoints.flv>
>>>> ";
>>>>         private var connection:NetConnection;
>>>>         private var stream:NetStream;
>>>>         private var video:Video = new Video();
>>>>
>>>>         public function NetConnectionExample() {
>>>>             connection = new NetConnection();
>>>>             
>>>> connection.addEventListener(**NetStatusEvent.NET_STATUS,
>>>> netStatusHandler);
>>>>             
>>>> connection.addEventListener(**SecurityErrorEvent.SECURITY_*
>>>> *ERROR,
>>>> securityErrorHandler);
>>>>             connection.connect(null);
>>>>         }
>>>>
>>>>         private function 
>>>> netStatusHandler(event:**NetStatusEvent):void
>>>> {
>>>>             switch (event.info.code) {
>>>>                 case "NetConnection.Connect.**Success":
>>>>                     connectStream();
>>>>                     break;
>>>>                 case "NetStream.Play.**StreamNotFound":
>>>>                     trace("Stream not found: " + videoURL);
>>>>                     break;
>>>>             }
>>>>         }
>>>>
>>>>         private function
>>>> securityErrorHandler(event:**SecurityErrorEvent):void {
>>>>             trace("securityErrorHandler: " + event);
>>>>         }
>>>>
>>>>         private function connectStream():void {
>>>>             addChild(video);
>>>>             var stream:NetStream = new NetStream(connection);
>>>>             stream.addEventListener(**NetStatusEvent.NET_STATUS,
>>>> netStatusHandler);
>>>>             stream.client = new CustomClient();
>>>>             video.attachNetStream(stream);
>>>>             stream.play(videoURL);
>>>>         }
>>>>     }
>>>> }
>>>>
>>>> class CustomClient {
>>>>     public function onMetaData(info:Object):void {
>>>>         trace("metadata: duration=" + info.duration + " width=" + 
>>>> info.width + " height=" + info.height + " framerate=" + info.framerate);
>>>>     }
>>>>     public function onCuePoint(info:Object):void {
>>>>         trace("cuepoint: time=" + info.time + " name=" + info.name + "
>>>> type=" + info.type);
>>>>     }
>>>> }
>>>>
>>>> Best,
>>>>
>>>> Karl DeSaulniers
>>>> Design Drumm
>>>> http://designdrumm.com
>>>> ______________________________**_________________
>>>> Flashcoders mailing list
>>>> Flashcoders@chattyfig.figleaf.**com 
>>>> <Flashcoders@chattyfig.figleaf.com>
>>>> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://
>>>> chattyfig.figleaf.com/mailman/listinfo/flashcoders>
>>>>
>>>
>>>
>>> --
>>> Ktu;
>>>
>>> The information contained in this message may or may not be 
>>> privileged and/or confidential. If you are NOT the intended 
>>> recipient, congratulations, you got mail!
>>> ______________________________**_________________
>>> Flashcoders mailing list
>>> Flashcoders@chattyfig.figleaf.**com 
>>> <Flashcoders@chattyfig.figleaf.com>
>>> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://c
>>> hattyfig.figleaf.com/mailman/listinfo/flashcoders>
>>>
>> ______________________________**_________________
>> Flashcoders mailing list
>> Flashcoders@chattyfig.figleaf.**com 
>> <Flashcoders@chattyfig.figleaf.com>
>> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://ch
>> attyfig.figleaf.com/mailman/listinfo/flashcoders>
>>
>>
>> -----
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2013.0.3343 / Virus Database: 3184/6360 - Release Date: 
>> 05/26/13
>>
>> ______________________________**_________________
>> Flashcoders mailing list
>> Flashcoders@chattyfig.figleaf.**com 
>> <Flashcoders@chattyfig.figleaf.com>
>> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://ch
>> attyfig.figleaf.com/mailman/listinfo/flashcoders>
>>
>>
> ______________________________**_________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.**com 
> <Flashcoders@chattyfig.figleaf.com>
> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://cha
> ttyfig.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

Reply via email to