Max,

I think I have been professional here and other would agree.

I have listened to you, tried to understand, and posted code to help.

Please keep Flexcoders professional, it is not personal. :)

Flash/Flex is simple for a reason. As a platform, it was designed to create 
light and fast distributed applications. I think it accomplishes this design 
better than any technology to date and it will continue to improve.

"Perfection is achieved, not when there is nothing left to add, but when there 
is nothing left to remove." - Antoine de Saint-Exupery

Cheers,

Ted :)

ps. Since my "code is bad", I am going to crawl into a hole and drink some 
beers given this profound realization that my code sucks. :)



________________________________________
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of 
maxym.hryniv
Sent: Tuesday, April 11, 2006 10:02 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Question to Adobe about Flex Framework 1.5 Code 
Quality

Ted, You've not understood me one more time. I don't have a problem 
with creating my own code with my own logic (btw your code is bad).  
But as a developer you don't have to be targeted to some concrete case 
but you have to operate with abstractions. And if in bubbled 
dispatching you see events dispatching through a tree of visual 
object, I see few abstractions that we can separate from each other. 
And if now it's not separated it's not so extensible as it can be. And 
the question was NOT "how to create some ... bla-bla-bla with bla-bla-
bla" BUT "Why we have different abstractions hardcoded in one class 
and why Adobe doesn't provide better solution, cause it can be better 
even leaving current interface??? And looking back to flex 1.5 
framework code I'm not wondered, cause it's created using copy&paste."

Hope you will understand me this time.
Max

--- In flexcoders@yahoogroups.com, "Ted Patrick" <[EMAIL PROTECTED]> 
wrote:
>
> > And DOM model is designed for TREE of objects, but we cannot
> > use it in non-visual tree, that because IT"S BAD DESIGNED.
> 
> ---------------------------------------------------------------
> WITH FLEX 2 YOU CAN SUPPORT THIS TODAY, YOU ARE NOT RESTRICTED. 
> ---------------------------------------------------------------
> 
> I believe that adding this into the player or Flex by default would 
be a mistake. 
> 
> Here is my logic:
> 
> 1. DOM Events exist to give context to user interaction on the 
DisplayList. These events originate on the visual layer of the 
application where elements are exposed to Mouse, Keyboard, 
DisplayObject events. Only objects that extend DisplayObject can be 
added to the DisplayList, custom classes can listen through a 
DisplayObject's events but they are not directly on the DisplayList.
> 
> 2. Any object can listen for events at any node of the DisplayList 
tree. (I posted an example of this) This allows custom classes to 
participate in events from the DisplayList. 
> 
> 3. How events are processed within custom classes is the class's 
responsibility (read: encapsulation). If your class needs events to 
walk its children, then implement it. 
> 
> Here is an example of event processing with custom classes using 
trees:
> 
> package {
>       import flash.util.trace;
>       import flash.events.*      
>       public class FooClass extends EventDispatcher {      
>             
>             public var children:Array = [];
>                   
>             public function FooClass(){
>                   this.addEventListener( 'resize' , processEvent )
            
>             }            
>             
>             public function processEvent( event:Event ){
>                   for( var i:uint=0 ; i < children.length ; i++ ){
>                         children[i].dispatchEvent( event );            
                  
>                   }      
>             }
>             
>             public function addChild( child:Object ){            
>                   children.push( child );            
>             }                        
>       }
> }
> 
> // AS code within AS3/Flex application:
> // Build a tree of custom classes
> 
> // create a root object
> rootFoo = new FooClass();
> 
> // add child objects
> rootFoo.addChild( new FooClass() ) 
> rootFoo.addChild( new FooClass() ) 
> rootFoo.addChild( new FooClass() )
> 
> // add more child objects
> rootFoo.children[0].addChild( new FooClass() ) 
> rootFoo.children[0].addChild( new FooClass() ) 
> rootFoo.children[0].addChild( new FooClass() )
> 
> // add more more child objects
> rootFoo.children[0].children[1].addChild( new FooClass() ) 
> rootFoo.children[0].children[1].addChild( new FooClass() ) 
> rootFoo.children[0].children[1].addChild( new FooClass() )
> 
> // dispatch an event to walk children
> rootFoo.dispatchEvent( new Event('resize') );
> 
> 
> In this case, at each level I am using an Array to hold children 
events would be processed like so:
> 
> rootFoo.children[0].children[0] 
> rootFoo.children[0].children[1].children[0] 
> rootFoo.children[0].children[1].children[1]   
> rootFoo.children[0].children[1].children[2] 
> rootFoo.children[0].children[1]      
> rootFoo.children[0].children[2] 
> rootFoo.children[0] 
> rootFoo.children[1] 
> rootFoo.children[2]
> rootFoo
> 
> In adding listeners in the constructor, this forces child objects to 
have event precedence in the tree. At each level the events will 
process to the deepest child and then handle events upward based on 
the order events were added into each node. 
> 
> If you wanted to see different pattern of event processing, simply 
change the eventProcessor method or how listeners are added to fit 
your needs.
> 
> It really is wide open.
> 
> Hope this helps!
> 
> Cheers,
> 
> Cynergy Systems, Inc.
> Theodore Patrick
> Sr. Consultant
> [EMAIL PROTECTED]
> tel: 1.866.CYNERGY
> http://www.cynergysystems.com
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.385 / Virus Database: 268.4.1/307 - Release Date: 4/10/
2006
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 


________________________________________
YAHOO! GROUPS LINKS 

*  Visit your group "flexcoders" on the web.
  
*  To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
  
*  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 

________________________________________

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.385 / Virus Database: 268.4.1/307 - Release Date: 4/10/2006
 


--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to