Flex book component (alpha)

UPDATE: The beta version of the Book class (including source-code) is now online!
rubenswieringa.com/blog/flex-book-component-beta

Lately it’s been kinda quiet on my blog, this semi-silence has been with good reason though because in the past few months I have been working on a booming feature-rich pageflip book component for Flex.

Check out the alpha demo by clicking the image below, bearing in mind that this is an early alpha version, so performance may not be optimal.
UPDATE: Unfortunately the alpha version was lost during file maintenance, please refer to the beta version for the time being.

Here are some of the key-features I’ve implemented (or will be implementing) in my book component:

  • Pageflip effect (not kidding ;))
  • Hardback option for every page, as well as a hardcover option for the containing book, automatically making the first and last pages hardback.
  • Functionality for tearing pages out of the containing book.
  • Methods allowing automatically flipping through the pages of a book ( gotopage() ).
  • Customizable easing, auto-pageflip duration, and size for the hit-regions (the page-corners whereby a page can be flipped).
  • Distortion (instead of skewing) when flipping hardback pages.
  • A variety of events that the book class dispatches, making customization alot simpler.
  • Transparency support for pages.
  • Live-bitmapping functionality for playing animation uninterrupted during pageflips.
  • Optional outlines for making pageflips of semi-transparent pages more visible.
  • Locking functionality to keep certain pages from being flipped.

Once the final release is ready I will also post the source of the book component.
I know there are still a few bugs and weird things in the alpha demo, but nevertheless, don’t be shy to leave your praisings, feedback, or whatever in the comments-section..

Mind that all the artwork is courtesy of Theo Aartsma, who rocks for letting me use it for this demo.

Also note that in my initial post I failed to mention that I created this component during my internship at TFE. Without these guys it would surely taken me alot longer to have gotten this far, they were also kind enough to allow me to post publish component and its source-code. So thanks guys!

58 Responses

Note that comments are displayed in reverse chronological order with topmost comments being freshest. Subscribe | Comment
  • Sheri Russo says so:
    July 17th, 2008 | Quote

    how does one acquire this tool. Where can I purchase or download.

    Please.

    It is too cool for words!

  • Steve says so:
    June 7th, 2008 | Quote

    Great user interface, and Happy Birthday!

  • Gary Hussey says so:
    May 12th, 2008 | Quote

    Nice work. This is a great component.

  • Ruben says so:
    April 6th, 2008 | Quote

    Hey Marco,

    Thanks! I don’t have a ready-made example of that, though for using embedded or loaded SWF’s in a Flex-app you should look into the docs for the SWFLoader control.

  • Marco says so:
    April 4th, 2008 | Quote

    Nice component. Very impresive :-)

    I was wondering a couple of things…
    If I put flash swf’s inside, is there anyway for me to control them? something like “displayedPagedRight,gotoAndPlay(2)” or something like that.

    I see that all your pages are embeded, I would need to load swf’s dynamicaly at run-time. Do yo have an example of that?

    I thank you in advance for your time and patience. Coming from a .net background, some of these things arent so obvious to me.

    Marco

  • denix says so:
    January 30th, 2008 | Quote

    wow! great job!!! exactly what I was searching for! thank you!
    Denis

  • Ruben says so:
    January 21st, 2008 | Quote

    @Tenchi: Thanks! Unfortunately you’re not going to be able to use this component in Flash (or an Actionscript-only project) seeing that it is built on the Flex framework (i.e. classes that are only available in Flex projects).

    @Giles: The source code for the alpha version of Book was never released in the first place and I lost it a while ago, so it’s probably going to be hard to get your hands on it, sorry man. :)

  • Giles says so:
    January 21st, 2008 | Quote

    Hi People.

    I need to use this great component on a new project I am working on. Does anyone have the lost alpha code zipped up? Perhaps you could send it to Ruben any myself:
    giles @ roadnight . name

    Thanks

  • Tenchi says so:
    December 28th, 2007 | Quote

    hi ruben , nice work on the flipbook ;)

    is it actually possible for me to use this flipbook directly in flash cs3 ?
    if so do you have an example of that ?

  • Krix says so:
    December 18th, 2007 | Quote

    This is sexy! Doggy Style!!!

  • David says so:
    November 28th, 2007 | Quote

    Hi,
    Great component but one minor issue, when you try to use the book dynamically(place objects on it at runtime) the gradient overlay will kick in sometimes and not allow any objects to gain focus. I havent been able to work out if this is occuring within the book or the viewstack maybe you have an idea how to send the gradient to the back of the display list without destroying functionality of the book.

    thanks
    david F.

  • Ruben says so:
    October 15th, 2007 | Quote

    Hey Reggie,

    Are you sure you have an even amount of Page instances in your Book? I do accept donations, you can do so through PayPal, I sent you an email with further instructions. :)

  • Reggie Bryant says so:
    October 12th, 2007 | Quote

    Sorry about the messy post. The error is being thrown in
    Book::evaluateHover().

  • Reggie Bryant says so:
    October 12th, 2007 | Quote

    This is an incredible component. Very well done.
    I have a question though. I intermittently get this message:
    “RangeError: Index ‘8′ specified is out of bounds.

    at mx.collections::ListCollectionView/getItemAt()
    at com.rubenswieringa.book::Book/com.rubenswieringa.book:Book::evaluateHover()

    I can’t figure out whats triggering it as it seems to appear at random. I wonder if disabling page hover will cure it? Any advice would be great.
    Anyway, if you take donations, let me know. This is probably one of the best custom components out there.

  • Ruben says so:
    September 30th, 2007 | Quote

    Hey Apache, could you perhaps give me a little more detail? For example: when exactly did it happen; can you reproduce the bug? Thanks a lot for reporting this bug :)

  • Apache says so:
    September 30th, 2007 | Quote

    Hi,
    I found when I fliped back one page,There will be a line on the page , and an triangle full of black . If It is a bug of the flexbook ?

  • Ruben says so:
    September 26th, 2007 | Quote

    Roxlu, what exactly are you referring to when say “not in one book”? You can specify the width and height for a Book, but all pages in one Book must be of the same size (in the beta, that is)..

  • Roxlu says so:
    September 26th, 2007 | Quote

    Is it possible to use custom sized pages? So for example landscape or portrait pages? (not in one book though?)

  • Ruben says so:
    July 13th, 2007 | Quote

    Rafael, you can now find a link to the source-code of the Book component in the blog-post about the beta-version. Do mind that it is still a beta-version, which means that there are still a few bugs to be fixed.#
    I hope this helps..

  • Rafael Ribeiro says so:
    July 3rd, 2007 | Quote

    Hello, I would like this component. How can I proceed? there is some place for me to do the download? to buy? how can we negotiate that component?

    Hug.

  • secondes says so:
    July 2nd, 2007 | Quote

    wow nice effetc - amazing effect

  • Kroket says so:
    June 25th, 2007 | Quote

    what are you doing that U’re so busy? Do you have multiple projects? Or are you making website’s?

    Bye

  • Ruben says so:
    June 25th, 2007 | Quote

    I hope somewhere whithin the next 10 days, I can’t say anything for certain though, things have been real busy lately..

  • Kroket says so:
    June 25th, 2007 | Quote

    When do you think U’ll be finnished?

    Enjoy!

  • Ruben says so:
    June 21st, 2007 | Quote

    Kroket, thank you very much. I have sent you a reply to your email just a minute ago.. :)

  • Kroket says so:
    June 20th, 2007 | Quote

    Hi mate!

    I must say U have awesome site!!!
    this component is the best too.
    I’ve send you an mail so please do read it hehe

    Greets Mate

  • Ruben says so:
    June 19th, 2007 | Quote

    Daniel, thanks, I might implement large cover page functionality in future version of the Book component. Though I’m pretty certain this will not be until after the next release..

  • Daniel says so:
    June 19th, 2007 | Quote

    This component looks awesome. Do you think you are going to implement large cover page functionality so that the cover can be larger than the inside pages?

  • Danis says so:
    June 17th, 2007 | Quote

    I defenitely want to grab the sources. very interesting..

  • Ruben says so:
    June 10th, 2007 | Quote

    @nacho: Within a couple of weeks I will publish the source-code, then I will also explain how I realized some of the features of the Book component.

  • nacho says so:
    June 9th, 2007 | Quote

    Ah! One forgot me, marvellous work!

  • nacho says so:
    June 9th, 2007 | Quote

    Hola ruben.

    I have seen your demo of pageflip, I now am doing a pageflip but I have a problem, in a page there is a link and on having gone on to the following page if I pass the mouse on her, the previous link continues appearing though invisible. In your pageflip you have links to other sites how did you do in order that not transparency? Thank you. Sorry my english :)

  • Bor says so:
    June 8th, 2007 | Quote

    Great work!!!

  • Raymond says so:
    June 8th, 2007 | Quote

    Great stuff!

  • Ruben says so:
    June 8th, 2007 | Quote

    Thanks everybody for the awesome support and compliments, it means a great deal.. :)

  • Nathan says so:
    June 8th, 2007 | Quote

    Wow! That’s amazing!

    Keep up the good work :)

  • Maikel Sibbald says so:
    June 7th, 2007 | Quote

    Great component man… but I told you allready… Keep up the good work…

    And to all haters that think he ripped the Ely Greenfield version…I can tell he build it himself based on some classes found on ByteArray.org……and off course my proof of concept hahahha

    http://labs.flexcoders.nl/?p=33

    Try build it yourself!!! Then we’ll talk again (that’s for all haters)

  • Wietse Veenstra says so:
    June 7th, 2007 | Quote

    I’m proud of you Ruben! I watched you develop this book from scratch along the last few weeks and it’s super!

  • Ewout says so:
    June 7th, 2007 | Quote

    Very, very, very nice job Ruben!
    Nice and usefull component!

  • Ruben says so:
    June 7th, 2007 | Quote

    Hahahaha, that’s probably the most noteworthy comment I’ve had up to now ;)

  • Niels Bruin says so:
    June 7th, 2007 | Quote

    Very very very nice! The shit is looking great!

  • Ruben says so:
    June 7th, 2007 | Quote

    Thanks man!

  • nwebb says so:
    June 7th, 2007 | Quote

    Very nice indeed. Great job :]

  • Ruben says so:
    June 7th, 2007 | Quote

    @aYo: Haha, thanks for remembering my birthday! This is my last day before passing the 20 milestone, what a day ;)

    @Matthijs: Thanks man, you rock!

  • aYo says so:
    June 7th, 2007 | Quote

    Very Well done, and Happy Birthday

  • Matthijs Roumen says so:
    June 7th, 2007 | Quote

    Amazing job Ruben!

  • Ruben says so:
    June 7th, 2007 | Quote

    You’re welcome Guillermo :)

  • Guillermo says so:
    June 7th, 2007 | Quote

    Thanks again,

    I get you,

    thanks for this great component

    Best,

    Guillermo

  • Ruben says so:
    June 7th, 2007 | Quote

    @Jaap: Thanks man, you’re too kind ;) Even more goodness to be revealed in the next release!

    @Guillermo: As I said in my post, I’m planning on publishing the source-code when a final release is ready. Right now there are still quite few optimalizations to be made and one or two bugs to be fixed.
    Keep an eye on my blog in the next few weeks..

  • Guillermo says so:
    June 7th, 2007 | Quote

    Ruben Cool!!!!!
    I would like to know you, this component will be available for the community (Freeware) or comercial?.

    Really good Job!!!!

    Best,

    Guillermo

  • Jaap Kooiker says so:
    June 6th, 2007 | Quote

    You’ve really done it this time!
    It looks great, feels great and handles great. Also I think the page ripping is a very cool feature.

    Keep it up!

Trackbacks:

Leave a Reply