|
Dude, you should see the shiz I put together for
work. Custom form elements as list items. Look into DataSelector; he
worked great in Flash, and works great in Flex too. Basically, it's an API
to make your main (abstract) class have the power of a List. You get
dataProvider integration, and all the dataProvider events when things
change.
From there you, can display the list data however
your imagination can imagine. I've been working on a blog entry #4 about
it that actually shows it because it's so cool what you can do with
it.
For now, check the old entries, and think of "doing
whatever you want"; don't think "list item"; that's too small. Think
"whatever the heck I want!".
----- Original Message -----
Sent: Thursday, November 03, 2005 6:45 PM
Subject: Re: [flexcoders] To code-behind or not to
code-behind?
Thanks for this JesterXL (I continually write your handle as JesterXML
heh). We will definitely be extending the base classes ourselves also so that
gives us styles for free. I'm wondering how to create custom List-based controls
that don't look like Lists (mostly for the dataProvider functionality) but
without the source code I'm kinda fumbling in the dark here.
All good I think I've started rambling better start coding :-) Thanks
for your advice everyone, this has been a great thread.
CHeers,
Jules
On 11/4/05, JesterXL
<[EMAIL PROTECTED]>
wrote:
Unfortunately, no. A lot of what I'm doing
is being utilized on internal apps to generate data; creating forms for people
to input specific & releavant data associated with existing data.
Therefore, design is of the least bit
importance. Granted, even by doing nothing but using the haloTheme, and
extending the base Flex classes, my app still looks better than an HTML
equivalent; at least done in the same time frame with the same amount of man
hours, so that's cool I guess.
The component sets I used to create, however,
were for designers, so I just made it dead simple for them since that was my
audience, not developers, and gave every graphical symbol there for the
editing. This made it very easy to break if the changed the thumb
of a slider to something really big and a sliderbar to something really
small; so I just made my measurement code flexible.
On the flipside, making things code friendly in
Flex/ActionScript isn't too bad either; just copy what mx.controls.Button
does; place skin variables as public up top, and make everything an asset
instead of runtime drawing. Case in point ActionStep, the open source
Flash component framework based on the OpenStep framework is drawin entirely
in ActionScript. While this is great from a pure coding standpoint, it
doesn't really help those traditional designers who have assets already, or
designs created that couldn't be created with a drawing API alone.
Again, my target audience is production artists that have insane designs given
to them from Photoshop/AfterEffects/Illustrator, and are expected to implement
them into Flex. So, if everything's an asset, just make a new asset.
...again, since I'm extending the base classes, I
still get all the base CSS styles for free.
All of this is moot since Flash Player 8.5 makes
things insanely easier and WAYYYYYYY more dynamic.
----- Original Message -----
Sent: Thursday, November 03, 2005 4:40 PM
Subject: Re: [flexcoders] To code-behind or not to
code-behind?
This is an interesting approach. Let me see if I get this right:
1) create components that handle generic behaviour (eg a nav bar that
remembers the currently selected link)
2) hide each component behind an interface
3) create mxml that lays out these components, adding visual assets etc
as necessary
4) create "helper objects" that sit between the mxml and the components?
So that the mxml interacts with the helper objects, the helper objects with
the components and neither the components nor the mxml know anything about
each other. Is that what you mean?
I had never thought about adding the "helper objects" level of
indirection. I have so far tried to make my components define abstract
behaviour and then use mxml for creating instances of them and assigning
visual skins/styles. This is one reason why I've wanted to use code-behind: so
that two different applications can define different graphics but both import
the same actionscript. Perhaps I'm going about this the wrong way.
JesterXL, in your daily work is it or has it been a requirement for
your components to be re-skinnable? If so, are you able to share how you
accomplish this? I completely understand if you can't reveal such details!
Thanks everyone for their responses so far.
Jules
On 11/3/05, Roger
Gonzalez <[EMAIL PROTECTED]
> wrote:
<?xml
version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="
http://www.macromedia.com/2005/mxml" xmlns="*"> <VisToggle
id="vis" thing="{words}" /> <mx:Label id="words" text="Hello,
world!" /> <mx:Button id="toggle" label="toggle it" click="
vis.toggle()" /> </mx:Application>
// VisToggle.as:
helper object for twiddling visibility of
display objects package { import
flash.display.DisplayObject; public class VisToggle {
public function toggle()
{ thing.visible =
!thing.visible; } public var
thing:DisplayObject; } }
Pretty lame example, but you get the
idea.
I like to make classes (perhaps even a custom base for the
application) that implement interfaces, and then have helper objects
that know how to operate on those interfaces, and don't know anything
about the application itself.
I have a pet theory that if you use
mx.core.Application.application anywhere, you are building a messy
nightmare that will be difficult
to maintain. YMMV.
-rg
> -----Original
Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of JesterXL >
Sent: Wednesday, November 02, 2005 8:27 PM > To: [email protected] > Subject: Re:
[flexcoders] To code-behind or not to code-behind? > > What's a
helper object? > > ----- Original Message ----- > From:
"Roger Gonzalez" < [EMAIL PROTECTED]> > To: <[email protected]> > Sent: Wednesday,
November 02, 2005 11:22 PM > Subject: RE: [flexcoders] To code-behind
or not to code-behind? > > > You might want to search the
archives, we had a long chat about this > recently. > >
The conclusion that I personally push is to avoid relying on script >
source inclusion but rather to either > > a) create custom base
classes and derive your MXML components > from them, >
and/or > b) aggregate helper objects, and/or > c) factor the
MXML into metacomponents with well defined interfaces. > > I
find that inline OR external script snippets get messy and out of >
control, and you're generally better off following standard OO >
programming. > > Another way of looking at it is that if your
MXML is looking more like > AS code than like MXML, you're probably
better off refactoring things. > When any given MXML class is down to
10-15 lines of script, > things look > pretty clean, and it
seems better to just put it inline. > > (personal opinions
here, we argue this one internally quite a bit!) > -rg > >
> -----Original Message----- > > From: [email protected] > > [mailto:[email protected]] On Behalf Of Julian Suggate
> > Sent: Wednesday, November 02, 2005 7:31 PM > > To: [email protected] > > Subject:
[flexcoders] To code-behind or not to code-behind? > > > >
Gidday everyone, > > > > Years back, I wrote php scripts
with code embedded in the > > html and it led to maintenance
hassles. Since then, I've > > migrated to Java and now .NET and
what I liked about their > > models was the ability to separate the
code into > > "code-behind", something done quite elegantly in ASP.NET. > > These
eliminated a lot of the maintenance problems I'd > > encountered
earlier with PHP. > > > > So when I saw macromedia's
examples of mxml with > > <mx:Script>...</mx:Script>
blocks embedded directly into the > > mxml, I immediately searched
for a way to avoid this. I found > > that i could add a source=".."
attribute to the mx:Script > > element and the AS code would be
included by the compiler > > from an external file at compile
time. The IDE was even smart > > enough that any elements I'd
defined with id attributes in > > the mxml showed up with
intellisense in the included AS file > > (I am using Flex Builder
2, not sure if FB1.5 had that > > feature or not). >
> > > But now I'm having second thoughts. It kinda feels like
going > > against the grain. I don't want to carry old biases into
a > > new paradigm unnecessarily. I read an article by Aral
Balkan > > (of ARP fame) endorsing the code-behind approach
quite > > strongly, but by the same token, all sample apps from the
> > Cairngorm team freely mix mxml and AS code, as do examples
> > from macromedia themselves. > > > > I note
though, that the Cairngorm framework itself is all > > pure AS; it
is only the sample apps that use inline actionscript. > > >
> I can't seem to find a best practice anywhere, because for > >
every framework/example/article I find that seems to hint at > >
one way of doing things, I find another one that suggests the > >
opposite! Has anyone else with more Flex experience than me > >
answered this question, particularly in terms of which > > approach
is easier to maintain? > > > > At this stage, any hints
would be appreciated! > > > > TIA, > >
Jules > > > > > > -- > > 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 > > <http://groups.yahoo.com/group/flexcoders > " on the
web. > > > > * To unsubscribe from this group, send an
email to: > > [EMAIL PROTECTED] > >
<mailto:[EMAIL PROTECTED]
?subject=Unsubscribe> > > > > * Your use of Yahoo!
Groups is subject to the Yahoo! > > Terms of Service <
http://docs.yahoo.com/info/terms/> . > > >
> > > ________________________________ > > >
> > > > > -- > 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
> > > > > > > > >
------------------------ Yahoo! Groups Sponsor >
--------------------~--> > Fair play? Video games influencing
politics. Click and talk back! > http://us.click.yahoo.com/T8sf5C/tzNLAA/TtwFAA/nhFolB/TM >
-------------------------------------------------------------- >
------~-> > > -- > 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 > > > > > > >
------------------------
Yahoo! Groups Sponsor --------------------~--> Get Bzzzy! (real tools
to help you find a job). Welcome to the Sweet Life. http://us.click.yahoo.com/A77XvD/vlQLAA/TtwFAA/nhFolB/TM
--------------------------------------------------------------------~->
-- 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/
-- Flexcoders
Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search
Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
SPONSORED
LINKS
YAHOO! GROUPS LINKS
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
SPONSORED LINKS
YAHOO! GROUPS LINKS
|