Thursday, April 24, 2008

Adobe Give Photoshop Text Styles and a Text Style Manager!

Ok, so I as well as some other designers have been wanting to see Adobe Photoshop add the ability to have text styles and a text style manager for those styles. Why? Because when one has to work on a comp that contains hundreds of layers and making text style changes to each layer individually is f@king ridiculous! Why not make the ability to manage text styles in Photoshop easier! Well, at first I was going to do a mockup of what I thought the Photoshop Style Manager interface would look and function like in Photoshop CS3. But my friend and fellow designer Marty Dorion pointed out today that Adobe's InDesign has this functionality built in called Nested Styles. And that there is good documentation on how it works for a reference. So to save myself the time of making a mockup of how styling should work in Photoshop I am going to simply use InDesign's implementation of this feature as a way of possibly doing this in Photoshop. I will just list their top level bullet points on how styling of text works in InDesign and then you can go to Adobe's link to read and see how they do it along with a video of how it actually works. So if anyone who is responsible at Adobe for new Photoshop features ever sees this (Highly Unlikely) then maybe just maybe they will know what the hell I am talking about and actually give us this much needed functionality. So In a nutshell Adobe, please give us the ability within Photoshop to use styles and text style management, making it easier to reuse text properties and attributes in easy manner. I know I am not the only one who wants this so I am just a single voice speaking on behalf of many who are tired of tedious text manipulations for hundreds of layers.

InDesign has the ability to:

Control styles at import
Change your styles easily
Automate a style series

Photoshop does not have this functionality!

Quote - Although styles have been around for years to save time and ensure consistency, many designers still don’t take full advantage of them. Adobe® InDesign® CS2 adds even more reasons to use styles in your layouts, both for text and objects. In InDesign CS2, you’ll find more control over importing Microsoft Word styles, plus the new ability to create and apply styles to objects to ensure consistent drop shadows, color, and so forth. There are also many neat things to be done with text styles introduced in earlier versions of InDesign that you may not be taking advantage of. In the following 10 steps, let’s explore how to make the most of InDesign styles.

 

Read this Article to see how it could work:

Take advantage of InDesign styles Tutorial >>

 

Watch this video to see how it works: (Text Styles is at the end of the video)

 

Baby, It’s Christmas Time! CD CoverOK…Christmas has already come and gone, I know, but it’s still technically the holiday season, and the title of this episode is the title of a Christmas CD project I recently designed. That’s the project I showcase in this episode, in which I demonstrate a holiday grab bag of InDesign goodies including: starting a document on a left-hand page, using the Slug area and Text Variables, placing InDesign documents inside of other InDesign documents, using frames to crop and manage vector shapes, inserting Column Breaks and other special break characters, and setting up looping Nested Styles.

 

Episode 46: Baby, It’s Christmas Time! (VIDEO) >>


Wednesday, April 23, 2008

Using the Flex RadioButtonGroup Object Reference for Components Within a Form

Today we had the need to use a component that inside of itself had a radio button object. In order to have a mutually exclusive set of radio buttons in a group it's easy to use the groupName="yourGroup". That common groupName method is not what we needed here. We needed another way to make a series of repeated components that each contain a single radio button. So this is the problem that needed to be solved. How do you still have the functionality of a Radio Button Group but still have each instance of the radio button in each component be distinctly separate? Well, it's actually pretty easy. The solution that worked for us here was to create a RadioButtonGroup Object and then pass that Object reference into each component being repeated. What this did was allow us to have a handle to a RadioButtonGroup outside of each component without having to dispatch events manually and all that work involved with that. Sure that could have worked, but why not just use a built in Flex control that does it for you right! Right! So in a nutshell you can see how I did this in a very basic normalized example that I have provided for you. All this example contains is an Application MXML and a FormItem component. The RadioButtonGroup is then used to tie all the radio buttons for that repeater together no matter how many of them there are. Through the [Bindable] object reference we have what we need. Ok enough talk already, just look below.

Also before you just say wtf would you ever have a radio button be by itself in a component just know it had to be done for this project in a component yet still tied to a grouping. yes there is a much simpler way to do this. But it simply was not going to work for us. That's all I can say in regards to it's usage for us.

The Application MXML:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" xmlns:local="*" height="100" width="550">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable] private var aItemData:ArrayCollection;
            private function init():void{
                aItemData = new ArrayCollection([{letter: "a"},{letter: "b"},{letter: "c"},{letter: "d"}]);
            }
        ]]>
    </mx:Script>
    <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
            <mx:Text width="340" text="Radio Button Group Object Reference is Injected into each Component Containing a single Radio Button Control"/>
            <mx:RadioButtonGroup id="letterGroup" />
            <mx:Repeater id="formRepeater" dataProvider="{aItemData}">
                <local:FormItem formLetter="{formRepeater.currentItem.letter}" RadioGroup="{letterGroup}"/>
            </mx:Repeater>
    </mx:HBox>
</mx:Application>

The FormItem Component MXML:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            import mx.controls.RadioButtonGroup;
            [Bindable] public var formLetter:String;
            [Bindable] public var RadioGroup:RadioButtonGroup;
        ]]>
    </mx:Script>
    <mx:RadioButton label="{formLetter}" group="{RadioGroup}"/>
</mx:Canvas>

Example:

Source Files:

Flex RadioButtonGroup With Components Source Files >>


Monday, April 21, 2008

New Limewax Mix On Heavybag 04/16/2008

Yup and this one is sick too. Just found it on the Internets which if you hadn't already known is just a series of tubes. Anyway, I found this new mix on the dubplate digest blog posted by Khal. If you are into hard ass drum & bass then you'll want to bless your ears with this ASAP. I'm just passing on the goodness only I edited out the super long filler that was before Limwax's actual mix cuz it really gets annoying having to scrub or jump ahead to his mix in the original Heavybag podcast. So I spared you the trouble in advance :)

Track Listing:

01. Limewax - Kristall Weizen [Tech Itch]
02. The Sect - Annihilation [Freak]
03. Donny - Symptomless Comma (Current Value Rmx) [Barcode]
04. Cooh - Froger [LB]
05. Limewax - Untittled / Unfinished [Freak]
06. Current Value & Raiden - Rm Bleeps [Offkey]
07. Limewax - Ship Opening [Tech Itch]
08. Current Value - New Life [LB]
09. Limewax & SPL - Burger Pills [LB]
10. Donny - The Feast [Guerilla]
11. Limewax - Casino [Position Chrome]
12. Limewax - WoOoOoOh [LB]
13. Cooh - Vtakt
14. Limewax - Bomb [Romance Explosion EP] [Freak]
15. Current Value - Contact
16. Limewax - Cracking Core (Tech Itch Remix)
17. Limewax & Current Value - Desert Storm [LB]
18. Cooh - Trigrad [Freak / Obscene]
19. Spl & Eye D - Pyramid Punk [Lost Soul]
20. Current Value - Grey Steel [Freak]
21. Limewax - Aria [Tech Itch]
22. Limewax - Golden Path (VIP) [Freak Mp3]
23. Cooh - Poison Beta
24. Current Value - Cybernetics (Remix) [Barcode]
25. Current Value & Limewax - Tempest [LB]
26. Current Value - You Cannot Play God [Freak]
27. Audio - Rituals [Tech Freak]
28. Nanotek - Angels Of Truth [Freak]
29. Limewax & Dylan - Never Happening [Romance Explosion EP] [Freak]
30. Cooh - Crypt [Freak / Obscene]
31. Limewax - Everything (Dylan & Limewax VIP) [Freak]
32. Limewax - Icicle [Romance Explosion EP] [Freak]

Download Edited Limewax Mix MP3 >>

http://www.dnb-sets.de/?&suche=HEAVYBAG


Wednesday, April 16, 2008

Using Multiple ArrayCollections with Single Data Source for Sorting View

Just the other day co-worker Ryan Swanson and I were working on a large Flex project and we needed to figure out a way in which we could filter and sort an ArrayCollection in Flex without changing the sort order of other views that used the same data source. The issue we had at first was that since we were using bindings we had some issues where the sorting in one view would subsequently resort the other views in our application. It really is not the desired effect since each view should be using the same data but be independent in it's display of that same data. The important thing to note here for using the ArrayCollection in the way we did was that the ArrayCollection implements the ICollectionView interface. Knowing how this fundamentally works was key in getting our single data source to be displayed in multiple views using binding yet not actually rearranging the main datasource for sorting. We learned hat you can use a single Array as the data provider for a series of ArrayCollections and in this way each collection has the data but can manage the viewing of the data separately. Below is a description of what the ICollectionView interface does.

Quote - "The ICollectionView interface lets you sort and filter the data in the data provider so that the view represented by the collection is a reordered subset of the underlying data. These operations have no effect on the data provider contents, only on the subset that the collection view represents, and therefore what any control that uses the collection displays.

An ICollectionView is a view onto a collection of data. The view can be modified to show the data sorted according to various criteria or reduced by filters without modifying the underlying data. An IViewCursor provides to access items within a collection. You can modify the collection by using the IViewCursor interface insert() and remove() methods.

An ICollectionView may be a view onto data that has been retrieved from a remote location. When Implementing this interface for data that may be remote it is important to handle the case where data may not yet be available, which is indicated by the ItemPendingError.

The IList interface is an alternative to the ICollectionView interface."

Also the interface gives you some nice features like cursors and bookmarks. I wasn't aware of this until recently. So I just wanted to let you know that you may want to be aware of the ICollectionView interface and how it can help you to know what it does. In our case recently it helped us understand how you can use the collection as view into the original data. Thus allowing for a central [Bindable] data source without changing other views across our application. Sure edits to the data directly would be reflected, and that ok, we want that. We just didn't want a sort on one view to change another as this would cause a really wacky user experience.

About data providers and collections >>


Thursday, April 10, 2008

Critical Issue That Should Be Solved in Flash Player 10

I was reading Ryan Taylor's blog post Flash Player 9’s Biggest Problem and Grant Skinner's blog post on this very same topic called Failure to Unload: Flash Player 9's Dirty Little Secret and had an indirect experience with this at a previous job. I watched co-worker Guy Wyatt directly battle the issue of objects not getting destroyed after they where done. Guy and I worked on Flash Casino Slot Machines and had to switch the flash games out in place using JavaScript. The problem that occurred was that even after on game was supposed to be gone it really wasn't. The sounds, animations and objects lingered in memory and could still be heard and seen! If you asked Guy he'd probably tell you it was a real pain in the ass since Flash player didn't behave as expected so deconstruction mechanisms were needed to solve the problem.

So in the name of helping this topic get more exposure I am blogging this topic. However if you read at the end of Ryan Taylor's post in the comments it looks like Adobe has closed the door on this very important topic. I say we just make more noise and bitch some more in their face.

Ryan Taylor - "Also worth noting is that Adobe just released a public bug tracking system specifically for Flash Player. So make sure and log any other bugs that are driving you nuts as well.

https://bugs.adobe.com/flashplayer/"

http://www.stevensacks.net/2008/04/14/flash-player-memory-leak-rings-death-knell-for-air/


Flash to Flex bridge communication, both in AS3 - by: Andy Schmidt

I was made aware recently by fellow super Flexer Andy Schmidt that you can do some hackie modifications in order to get your Flash AS3 .swf to talk to your Flex AS3 .swf not the other way around.

Andy sent me the explanation on how this works and asked me to blog about it so I will do just that. Below is Andy's explanation of the Flash to Flex Bridge technique:

Quote From Andy-

"Hi, my name is Andy Schmidt. I am founder of Slashpark.com and I am very honored for the opportunity using Frankie’s Blog to talk about a solution for a Flash => Flex communication.

I am currently working on a large project for a well know soft drink producer converting an AS2 based application to Flex. Being happy as I am, especially with the new stuff that Flex has to offer I was all excited to get started. Except that I had to find out a tiny little detail that gave me some headache at first.

The client wants to have a Flex based site, but certain other vendors will provide some of the main contents too. Mainly timeline based animations that should trigger some function within the Flex application for tracking, navigation and so on. Looking for a solution I went to Google it and give it a go. Well that wasn’t to helpful then at all. After the 50th result or so that I followed up I yet again ended up on how to load Flash AS2 movies into Flex and how to communicate between the VM’s which was frustrating at that point.

I clearly needed a Flash2Flex bridge, both in AS3!
The very easy solution which does not require the other vendors to setup a Flex project and create modules and whatsoever. Knowing that class instances can only be created within the movies itself I felt stranded, except I could actually make it work to create some classes to solve this issue that was easily archived with _global within the old site.

Might be that I did not do the right search or somebody else has a better solution but here is mine that does work ok for me and I wanted to share this with the community. Feel free to suggest better ways if you will.

In a nutshell;

- I share a class between Flash and Flex.

- I use a public static constant that will be an object

- I assign a member to this object which will be a reference to the Flex application

- I call this object member from within Flash then you reach outside of my movie and trigger a function that sits in the Flex app

Class Path Setup to shared AS3 Class:

See the example - http://flash2flex.com"


resizeEffect="Resize"

The last couple of days I have been working on a multi-state view in flex. At first I simply changed the view using both show and hide techniques or switching the current state based on logic. However Ryan Swanson showed me that I could add to the interaction by simply adding resizeEffect="Resize"  on the outer container doing the resizing based on the inner contents of this container. The reason I mention this is it's nice to know that you can easily add some nice expanding and collapsing by just adding that small bit of code. I'm sure lots of people already know about this, but for those who don't and want to quickly add some nice resizing functionality this might help you.

http://livedocs.adobe.com/flex/2/langref/mx/effects/Resize.html

http://blog.flexexamples.com/2007/09/23/triggering-effects-when-a-container-is-resized/

http://flexexamples.blogspot.com/2007/12/flex-snippet-simple-tween-effects.html

Onwards and Upwards!


Monday, April 7, 2008

About Minding the Gap

 

Thanks to Fabian Vercuiel who sent me the link to the Mind the Gap (the Gap is Good) which appears to relative to the soon to be tool called "Thermo" post by Ethan Eismann at Adobe.  Now I do believe personally that the comment made by Fabian is correct.

 

Fabian states:

"Thats why the RIA community has coined the names “Devigner” and “Deseloper” , I can say from first hand experience that the gap is sometimes bridged but I don’t see this as a bad thing at all.

I see this as 2 new job titles. I think in an Agency its possible to have a structure where there are Devigners evaluating the work of Designers and Deselopers evaluating the work of Developers.

So at one end you have the Developers and at the other the Designers, right in the middle you have the Deselopers and Devigners working together to bridge the workflow."

 

Now I don't think anyone should be forced to learn one or the other if they have no desire too, but come on. Things are evolving and ever changing in our industry and the need for multi-talented design and coding talent is in demand. It helps bridge this "Gap" and just having tools doing this is in my mind only part of the solution here. I think the other part is being knowledgeable in both schools of thought. Deseloper or Devigner, the terminology here isn't what really matters, it's the ability to do both that helps bridge the gap. If you are a designer with any notion of learning how to code or even further yourself in that area, I personally recommend it and would encourage you to be so bold. It's not easy going from one end of the gap to the other. But I can say from experience it's one of the most gratifying ventures I have ever engaged in. Developing helps my design and can fully execute my designs and vice versa. It's a powerful asset to have but takes time to acquire.  Once you make that leap though you will be very happy. Some people may not know what a Deseloper or Devigner are. Well, I think it's about as basic as it gets here people just look at the words themselves! It's a person who fills the roles of both design and coding, or Coding and design. Yes it is possible because I myself do it and I know other people who do it as well like Ryan Swanson, Bryan Wills, Britt LaReau, Andy McIntoshFabian Vercuiel and many others. The trick to doing both well is hard work, sacrifice and having good mentors. It is in fact possible to both and do them well. A Deseloper or Devigner has the mind for the gap and can close it along with tools that help close the gap as well. If it's Adobe's Thermo then great but I'd recommend learning what these tools do at the core so you can fix stuff when it breaks. When it comes down to It's evolution. Evolution of designers, developers and the tools we use. 

Read: Mind the Gap (the Gap is Good) >>


COLOURlovers Desktop Color Finder in AIR




I saw this originally posted on the ScaleNine Blog and thought it was pretty slick so I'm just passing this info along. One thing I did notice about this application after using it is that the resizing of the app is non-existant, which is ok, but after clicking the help button it gave me the option of looking at the website and it was displayed in the small window making it impossible to use their website in this little area. But all in all it's pretty nice and like what has been done a lot.

"You can use the Desktop Color Finder to search our entire database of nearly 1 million named colors and more than 300,00 user created color palettes."

http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1468018

 

Also check out the Colour Lovers website. It's pretty slick as well.

http://www.colourlovers.com/

Blogged with the Flock Browser


Friday, April 4, 2008

Flex and ActionScript Posters

 

 

My good friend Eric Fickes let me know that the Flex posters are back. You can get them at the links below.

Website: http://flex.org/posters/

"If you want to get your own set of posters, you can download this .zip file with print quality PDF versions of the posters and print them at a local print shop."


Wednesday, April 2, 2008

Exclusive Mix By Current Value on Channel4Radio Show

I am a big fan of Current Value and was digging for some of his new track releases when I found this fairly new Mini Mix Current Value did. The quality is good but just note his mix is towards the end of the mp3 - actually at 42:00 in time actually so you can skip all the stuff up front and get to the goods. It's worth listening to the whole damn thing though because the drum core tracks throughout the show are sick as f@k! My favorite track right now is (Limewax - 'ONE OF THEM - (Current Value - RMX) (lost soul)) which is what I was looking for to begin with. Well it's in this mix and other new new hotness.

Current Value's Channel4Radio Show Set Listing:

Current Value - 'DARK RAIN' (intransigent)
Limewax - 'ONE OF THEM - (Current Value - RMX) (lost soul)
Current Value - 'MECHANISM' (Future Sickness)
Donny - 'SYMPTOMLESS COMA (Current Value RMX)' (barcode)
Current Value - 'GREY STEEL' (Freak)
Current Value - 'tba' (tba)
Current Value 'CYBERNETICS VIP' (barcode)
Current Value & Raiden - 'RM BLEEBS' (offkey)

Originally posted by: nrgetik on 3/31/08 @ 6:15 AM

Download mp3 >>

http://www.nrgetik.com/index.nrg?page=blog&bid=905


Using Notepad 2 for MXML and ActionScript 3

A while back I came across a very lightweight and powerful text editor called Notepad 2. It loads fast and edits text well. It' not a bloated pig of an app like Adobe's Dream Weaver. When I want to edit a text file I use Notepad 2. It does just what I want and it does it super fast. Well, I got curious and wondered if there was a way to to enable color coding support for MXML and ActionScript 3 files. Sure enough there is info out there and since I found a couple of sites that help you configure your trusty Notepad 2 for MXML and ActionScript, I just thought I'd pass the info along to anyone who uses it for text editing or maybe will one day. Also If you don't have Notepad 2, it's worth trying! You might even find yourself using it more than you'd think! Yeah sure they might not get all the tag insight and code hinting. But there is something to be said for an app that loads fast and just does what you need it to. Also worth noting is the fact that I use windows. I'm sure you Big Mac's like to use TextMate. I have the windows version of it called E-Text Editor but I find myself not using it as much cuz it takes longer to load. I mean really my patience can be worn thin when all I want to do is make quick edits.

Josh Tynjala - Notepad2 support for ActionScript changed >>

Mark's Musings: Notepad 2 for MXML and ActionScript 3 >>

 

* Also notable is another text editor called Intype which uses an ActionScript Bundle as well for code coloring etc... You can download the ActionScript Bundle as well as other Extended Bundles here: http://intype.info/download/bundles/. I just started using Intype one and it really works well too. Anyone reading this love opening Eclipse to edit a file?

Yeah I didn't think soooooooo...

 

FLASH DEVELOP: I do in fact use Flash Develop a lot too. But it does not load as fast and still has some bugs with it. I really like Flash Develop quite a bit and it's AS3 / Flex handling seems to be pretty good so far. My favorite thing in Flash Develop is the ability to browse a .SWF file like a folder filled with reference linkages. I just got a post about Flash Develop being a good editor and I just wanted to make clear I do use that too. I just wanted to mention the super lightweight uber basic editors that still have ActionScript support here.