Maybe I am missing something here, I haven't had time to spike the frame cache, but let me toss out some thoughts in the mean time:
1) This whole idea of prefix string formats, if you really need it should IMHO be a utility extension wrapper, whatever you like. We have the concept of a tag on a CocosNode why not use that for frames as well.
2) My current issue with FrameCache is the tight coupling with zwoptex and also the dictionary as it's only needed for zwoptex. I would like to be able to do something like:
enum {
stand,
walk1,
walk2,
walk3,
sit
}
[FrameAnimation animationFromFrame:walk1 toFrame:walk3];
3) Loading Frames: Still getting my head around this one, but there was something at the start of this thread that got me really exited and that was the CCSpriteSheet, and being able to either use it or not and it just works, but much faster with the sheet as a parent. With that said, aren't frames really just pointers to textures/rects on a sheet, and if so do we even need the FrameCache could we possibly just use the CCSpriteCache?
[characterSprite setFrame:sit]; // character is now sitting
4) Strings, if you want need string frame names then you just use a dictionary to map them to the frames. The question is where do we store this dictionary?