Packt Publishing is pleased to announce the release of a new Drupal book called Flash with Drupal, authored by Travis Tidwell. Catered for Drupal Developers, this book walks the reader through the evolution of many different Flash applications built around the power and flexibility of Drupal.

Packt Publishing is also pleased to offer a 15% discount to any Drupal.org user. To purchase this book with this discount, simply purchase Flash with Drupal through Packt Publishing, and provide the code FlashDru15. Also, keep in mind that Packt contributes a portion of every book sale right back to Drupal!

So what's in this book?

  • Chapter 1 sets the stage for the reader to learn how Flash and Drupal can combine to create a dynamic, content-rich experience for our users. We will learn how to embed Flash applications within Drupal, as well as learn about some important modules that make it easier to work with Flash in Drupal.
  • Chapter 2, Building a “Hello World” application in Flash: In this chapter, we will say hello to the world in Flash using Drupal-driven content. However, unlike any other "Hello World" tutorial, we will learn the important concepts of asynchronous programming and how that relates to working with Drupal content in Flash while utilizing the popular Services Module.
  • Chapter 3, Flash and CCK, covers how to add custom content to our Flash applications using the popular Content Construction Kit (CCK) module. We will illustrate this concept by building a hypothetical Recipe Flash application designed for a Drupal cooking web site.
  • Chapter 4, Drupal Images in Flash, shows us how to use Drupal managed images to give our application a little visual flare. We will build on from the previous chapter by adding an image to our Recipe Flash application. We will also explore how to utilize the ImageCache module within our Flash applications so that the image sizes are dynamically generated at run-time.
  • Chapter 5, Drupal audio in Flash, explores how to use Drupal's Audio module to provide audio content to a custom Flash application, which we will use to play and control that audio content.
  • Chapter 6, Drupal video in Flash, expands our custom media player to not only play music, but also show Flash videos managed from our Drupal web site. In addition, we will learn some important concepts of object-oriented practices while we reuse common components to build a media player for Drupal.
  • Chapter 7, The Hybrid Approach Part 1, explores a new technique where Flash and HTML can be combined using JavaScript to give a Hybrid Flash architecture. This technique works to solve the problem where an all-or-nothing approach is usually forced on the designer when integrating Flash with Drupal. In this chapter we will learn how to take an existing Flash application and break apart the components for remote communication. We achieve this by first abstracting out separate functionality into two separate components, and then laying the foundation for a JavaScript communication gateway between the two different Flash components. This is an essential first step to create a robust and easily maintained system, where Flash applications can be separated on a Drupal web site, thus implementing a hybrid Flash integration.
  • Chapter 8, The Hybrid Approach Part 2, creates the necessary components required to implement the communication between two different Flash components. This chapter focuses on creating the bridge between two different Flash applications. Once we create this bridge, we will have the ability to control our media from a remote Flash application. In other words, we will be building a remote control for our media player that can be placed anywhere on the page, separate from the media player, thus creating a Hybrid Flash-Drupal architecture.
  • Chapter 9, Flash with Views, builds a media player whose playlist is driven from the power of the Views module. Arguably, the most important aspect of any content-rich web site is its ability to build lists of each piece of content in a meaningful manner. The Drupal Views module gives the administrator the ability to manage the contents of their site in a meaningful list of content to present to the users. By combining this power within Flash, we can learn how to create a playlist of video nodes for our custom media player.
  • Chapter 10, User Management, shows how to utilize user management within a Flash application by building a User Login Flash widget. One of the most important aspects of the Drupal CMS is its ability to manage its users and protect the content of that site using a permission-based role system.
  • Chapter 11, Adding content to Drupal from Flash, shows how to add content to our Drupal web site while at the same time keep our data safe from malicious software. Not only can Flash be used to show Drupal content, but it can also be utilized to add and manipulate Drupal content from a remote Flash application.
  • Chapter 12, Building a five-star voter in Flash, will sum up all lessons learned in this book by building a five-star voting mechanism in Flash. We will learn how to build a custom Voting Service as well as create our very own Flash driven five-star voter compatible with the popular FiveStar module.

Want a sample?...

To help promote the content provided within this book, Packt is generous enough to provide sample content of what you can expect from reading this book. Below is a list of articles and chapters from this book.

About the Author

Travis Tidwell is the owner and lead developer for TMT Digital, a company that specializes in the development of Flash applications for Drupal content management system. He is also the sole developer for the Dash Media Player, which is a media player built specifically for Drupal. As well as contributing this media player, Travis is also the author and co-maintainer for the FlashVideo module which is a complete video solution for Drupal.

Travis graduated with an Bachelors of Science in Electrical and Computer Engineering from Oklahoma State University and has worked as an Embedded Systems Engineer for companies specializing in automotive and agricultural GPS products. Travis then fell in love with web development and more specifically with Drupal and Flash, where he has developed numerous sites including Delicioso! for Food Networks Ingrid Hoffmann.

Travis is happily married to his beautiful wife, Erin, and is the proud parent of a feisty one-year-old named Brycen. When Travis isn’t working on the computer (which is rare these days), he enjoys the performing arts including playing guitar, singing, and tap dancing!

I personally would like to give a big thank you to the Drupal Community for their support, and I hope you enjoy this book!

Travis Tidwell

Comments

Rainy Day’s picture

I’m sure there will be demand for this book, and no doubt Travis has done a fine job writing it, but i personally consider Flash to be Evil, used primarily to display annoying animated ads. I realize there are other, more honorable uses for Flash, but i’d prefer to see them implemented using open standards, rather than via the closed, proprietary Flash format. Flash also doesn’t play well (if at all) on mobile devices, which is a growing market for web browsing. I think between the emerging HTML 5 and CCS 3 standards, and the growing mobile market, Flash will be at EOL in a couple of years.

So i want to wish you well with your book, but wish you had turned your talents to a different topic. Perhaps you can write a sequel: Drupal without Flash, wherein you write how to use open standards to achieve the same goals, and in ways which work on mobile devices? You know, sort of the Jedi version of this book? ;-)

Sorry, but Flash just pushes my hot button, because too often it is used for evil. And i hate proprietary technologies when superior open standards are available. (I know Adobe is making noises about opening the Flash standard up, but we’ll have to see just how open that will truly be.) YMMV.

travist’s picture

Rainy Day,

I really am sorry you feel that way. But (obviously) I would have to disagree. Flash is not evil. Flash is very useful when applied correctly and for specific requirements. Obviously, you have a grudge toward developers who use Flash for the wrong reasons, and you are more than welcome to feel that way. But please keep in mind that ANY technology could be used for the wrong reasons. I can just as easily create annoying advertisements with JavaScript and HTML. In fact, you can make your advertisements even MORE annoying using JavaScript and HTML... What I am trying to say is that your grudge should not with the technology, but with the application of that technology.

Notice I did not write a book about building annoying advertisements with Flash. Nor did I write a book about using Flash as the entire frontend for Drupal ( which I do not condone ). Rather, I wrote a book about creating discrete Flash compoents ( widgets ) that utilize the power of Drupal, including the implementation of multimedia on your Drupal site ( to which Flash excels ).

Also, I can understand why some people would bawk at Flash (not open source), but that does not mean that the technology isn't relevant and shouldn't be used. Of course this is all subjective, but I believe Flash is a relevant techonology today. This does not mean that I don't feel there will be a better open source alternative in the future, but as it stands today, Flash is the most widely used platform for multimedia and there is little documentation on how to utilize this techonogy within a Content Management envoironment. And this is knowledge that anyone can benefit from.

Thanks for giving your opinion, but I really hope that others do not feel the same way.

Travis.

Rainy Day’s picture

You make a good point that any technology can be used for good or evil. I don’t have a grudge against developers who use Flash, but the technology does seem to attract an unsavory element who abuse the technology. It is that constant abuse which has caused me to develop an enmity toward the technology. As well as some of the tawdry and gaudy ways it’s used to display images. Perhaps it’s unfair, but these negative encounters with the technology color how i feel about it. If a dog keeps crapping in your front yard, you’re likely to feel some enmity toward that dog, even if in every other way it is a fine animal.

There are other reasons not to like Flash: closed source, user experience is not as good on Linux or Mac OS X, doesn’t work on most mobile devices, is a bane for people with disabilities, etc. In my opinion, these are issues which should be of concern to any web developer.

I’d like to wish you success with your book, but that seems to be at odds with my desire to see Flash die a quick but painful death. How about i just wish you well instead? :-)

travist’s picture

Rainy,

Again, thanks for your opinion. In my personal opinion, this type of debate is important for any healthy community, and I applaud you for speaking your mind. You definitely have some relevant points, but again, I personally feel this is all subjective. I think the important thing to note here is that I do not condone misuse of Flash within this book. I believe that Flash integration should be implemented as widgets. I also address the common problems which seem to "force" developers to misuse Flash, such as use it as the entire front-end for Drupal. You see, I believe the answer to correct the misuse of a technology is education, not the destruction of that technology. I don't think that Flash should be destroyed... I believe that developers should be educated on how to use it correctly.

There are many cases where Flash is abused simply because the developer is uneducated on how it should be used. They do not understand its limitations ( which every technology has ), and end up implementing it so that it degrades site value. These are things which I try to address in this book ( See the "Hybrid Approach" chapters, where I talk about developing a series of widgets that can communicate to each other to address the "entire front-end" issue ).

I believe Flash has a purpose and does what it is supposed to do VERY well. In fact, as it is today, there is not much that compares. I believe that within the next 5 years, there will be an open alternative, and when that day comes, I will embrace it with open arms ( maybe even write a book about it ). But until that day comes, Flash is the answer to many requirements, and there is little documentation on how to correctly utilize it within Drupal.

I hope this speaks for my motivation to write this book.

Thanks again for your opinions Rainy,

Travis.

margotdarby’s picture

I recently bought this book and find it a great contribution to this integration of two broad and useful technologies.

I am coming late to the party here, but was very amused by the 'Rainy Day' exchange. Initially I took the Rainy Day posting to be a joke, but it appears she (or he?) is serious. RD thinks Flash is mostly used for pop-up ads and other annoyances. It would appear that RD last studied the web around 1999-2000, the period when self-appointed Usability guru Jakob Neilsen sent out a screed called something like, "Flash is 99% BAD!"

Flash is used for many things these days, and pop-up and interactive "PointRoll"-style ads would hardly top the list. Flash's most common presence online is in the FLV video standard and navigation systems.

But a core reason for resentment against Flash remains among some designers and developers, and that is this: Flash/Flex/ActionScript constitute an independent technology rather than merely another extension of html/javascript/css/php. The complaint goes: 'It is hard enough work just to keep up with javascript libraries and CMS templates; why should there have to Flash as well, something that's expensive to buy and hard to learn and not based on the html stuff we already learned?'

Flash IS Open Source! The complaint that Flash is "expensive" shows how wrongheaded this bias is. The Flash IDE package may be expensive, but you don't need to buy it, any more than you need to buy Illustrator to draw a picture. Flash technology has been Open Source for several years, and is supported by a big community of developers. Anyone can build ActionScript3 on FlashDevelop or another free text editor, and compile it with the free Flex SDK. Most cutting-edge Flash developments is Open Source: PaperVision, for example, or the video technology you see on YouTube and Hulu, as well as such popular scripts as swfObject and Flash tweening engines.

Why Flash/Flex and Drupal? Drupal's ability to display Flash/Flex data has been widely noted, and is one of Drupal's outstanding advantages over Joomla! and WordPress. Joomla! can embed a .swf but data integration is difficult. WordPress can play a .swf video or animated image, but as yet its plugins do not allow any sort of interactive use or data manipulation.

weedFish’s picture

Hey Travis,

Great book, I am using Flex and adapting your examples but so far ( I'm on chapter 6) no problems really. In fact its Drupal which has been the bigger challenge with its patches and glitches (no offense but open source is quite prone to that sort of thing). Totally agree with the use of Flash where its useful not distracting , hopefully all this negative Flash stuff will make Adobe improve the platform, especially in terms of SEO and accessibiliy.

Great job!

jdeg’s picture

I can't see the problem to use Drupal with another proprietary technology. For people like me who loves Drupal and Flash i think this a amazing book.

Rainy Day, tell me one superior open standard available similar to Flash...

Good luck travist ;)

travist’s picture

Thank you for your support josedanielstrada.

jpetso’s picture

By now I'm pretty convinced that JavaScript and SVG will cut down on Flash's omnipresence eventually, especially when the new HTML 5 browsers get more widespread. It's not that those technologies are superior but anyways they're open, and in combination with widely spread browser support that is going to make a difference. With the help of JS libraries like jQuery UI or graphics libraries that are bound to get more popular, Flash won't be necessary for all those use cases where "fanciness" is a critical requirement.

I understand though that it's still going to take a while until we're there, and until then, Flash does have its place. It is still required where more complicated hardware interaction takes place (say, video capture) and makes sense for mass file uploading if only because Flash's file dialogs can select multiple files at once. (And no, image_fupload does *not* work properly in Konqueror atm even if Flash is correctly installed on my Linux box and works with Youtube and others.)

So yes, Flash is in fact evil, because it prevents similarly capable open solutions to be developed more quickly. But I also understand that by saying "Flash is evil" you won't get far because there is no alternative to Flash in a certain range of use cases. The way to battle Flash is not to complain about its usage, but to make open solutions work just as well and better. And it's indeed happening. JavaScript/SVG solutions will make their inroads, and by the time that Adobe open sources their Flash player it'll already be too late for them to keep their current status quo.

Now if only someone had written a book about Drupal and JavaScript... oh wait, someone actually did.

aaron’s picture

Don't forget about OpenLaszlo as a viable and existing alternative to Flash; we're using it for development of Drupal's own Media Player (a fully open source, GPL alternative to JW Flash Player).

I plan to order this book, which looks exciting and certainly fills the niche of a much-asked question. Hopefully the book touches on OL or other alternatives, but even if not, I'm certain it's still valuable, and until OL and other alternatives are more widely adopted, developers will always have clients who ask for this or that Flash feature.

travist’s picture

Thanks for the kind words, Aaron. I am a personal fan of yours, so that meant a lot. As for OpenLazlo, this is a very interesting technology, but given the amount of topics that I wanted to cover in this book, I was not able to tackle other alternatives. Maybe this would be a good topic for another Aaron Winborn book... (hint, hint) :)

gdemet’s picture

There's also Flashy, which we developed as a fully GPL'd alternative to JW Flash Player and use in production on several Drupal sites. It's not OpenLaszlo, but it is pure AS3, which means you're not tied in to Adobe's IDE.

libre fan’s picture

I couldn't agree more, Rainy Day. though I wouldn't even say there are some good uses of Flash.

A good read is (though the comparison with the diversity of languages is questionable):

http://trombonechamp.wordpress.com/2009/05/29/when-you-see-flash-duck-an...

Flash is closed source so you don't know what's in there. You need the plugin even if you use something open like Flex. Even in Ubuntu we have trouble installing the plugin (have to do it manually).

I also read Adobe forbids people to develop free flash software like Gnash if they have been using the Adobe plugin

And finally what do you do about accessibility?

To those who see no problem in using proprietary software in Drupal, don't forget that Drupal would not be what it is if it were proprietary.

Be innovative and develop freedom, Drupal folks! and look to open standards (without a bit of Flash) instead of looking back to the 20th century.

Cheers

ecksley’s picture

Hey Rainy,

Evil? Why?

  • Because it costs money? So Does Photoshop, illustrator and the other leading design tools. So do tall those Macs and PCs I see at Drupalcon.
  • And so what if they are used for ads. Since when is it amoral to advertise or make money? Dries and Aquia advertise at all the camps and cons. Does that make them evil?
  • While Flash has drawbacks, it does a lot of things beautifully. Or maybe you can't appreciate the brilliant information graphics you see on the New York Times, FLV players like YouTube, and Hulu or innovations in 3d classes like Papervision... which is open I might add, along with GreenSock and other amazing Actionscript classes. Please name me these "superior" non-Flash alternatives?

I for one have just about had it with the Drupal Community taking shots at Flash. It is only a tool of last resort if open source means having a closed mind.

Daniil’s picture

Myth 1. Flash is the closed proprietary format

1. Flash is not a format. Flash is a platform, technology. SWF is a format.
2. Yes, SWF is proprietary. But is it closed? Look: SWF File Format Specification (Version 10).
In the past you had to register and accept license agreement in order to download Specification. Now it is easily accessible.
3. Look here: Open Source Flash projects. Some of these projects generate SWF files. Some of them read and parse SWF files. Would it be possible if SWF were the closed format? I don't think so.
4. Flash Player is closed. But it contains a lot of know-hows, so it would be not very smart to give sources to everybody (inluding competitors). Guys who saw FP sources were very excited by used techniques.

Mith 2. Flash is used for evil annoying animated ads

Exactly! It was one of the goals of Flash - to replace GIF ads.
Do you remember GIF banners? 256 colors, big file size, ugly animation (otherwise they could be even bigger), and GIF was also a bit proprietary.
And at last we got an alternative, with vector graphics support, compact file size, much more complex animation and - TA-DA!- an easy tool for creating this animation!

Of course, Flash replaced GIF. It took some time, but now we have what we have: Flash won!
The fact that Flsah is used for annoying ads doesn't mean that Flash is bad. Quite the contrary, it means that Flash is good. Very good.
You want GIF ads back? Or may be you want ads based on Java applets?
Ah! I know! You want animated ads on JavaScript. Load 30 images, hide them and then show one-by-one. Cool technology! Very bandwith-efficient!

Myth 3. SVG can replace SWF

Some people like to say about superior open standards that can replace SWF. Often they talk about SVG.
1. SVG supports vector graphics.
2. SVG supports animation.
3. SVG is open.
4. SVG is not supported by Internet Explorer and it is the only reason why it is not popular.

Does it mean that SVG = SWF? No!
SWF can load, parse and display SVG. SVG cannot display SWF.
SWF > SVG.

Can SVG replace SWF? Partially.
You cannot make SVG-games (who cares?) but SVG is a perfect standard for annoying ads!
I would be happy if one day all ads become SVG. People like you will leave Flash alone and myth #2 will fall into oblivion.

Myth 4. Flash doesn’t play well (if at all) on mobile devices

Throw out your cell phone and buy a new one.

DarrellHQ’s picture

I was not expecting to see this book come out but when I came to drupal.org today looking to find some information about drupal and flash I saw this post. I'm extremely excited reading this book. Thanks for using packt publishing I've already bought all their other drupal related books and now I own this one too!

saml’s picture

Looks truly interesting.

Have been pondering on digging in to using Drupal with Flash, but been discouraged by the mere thought of another bottomless sea of new technologies to learn. But now, with the help of a book, it seems much more feasible.

Fixdit’s picture

Great work Travis. I know the awesome power of Flash and Drupal, especially when coupled with any number of the opensource Flash libraries out there. It's sad that Flash haters had to chime in so early to spread some negativity.

budda’s picture

If anyone is attending DrupalCampUK this coming weekend they can get this book for 40% off the cover price via the http://drupalcamp.org.uk/packt-publishing-book-offer page.

Only catch is the book has to be collected at the event, in Manchester.

meichr’s picture

I ordered it yesterday. This book comes at the right time for me as I often was asked whether I could add objects using flash to drupal websites I maintain and recently decided to learn about it. I am sorry that the beginning of the thread started with such a negativity as payment for your efforts - why can't the latest entries be on top to reflect the newest entries with so many positives first and not the oldest ;-) ?
Again thanks for putting the work into and having the will to share your knowledge with us.

Good luck,
Chris.

travist’s picture

Thanks Chris,

I really do appreicate your support.

( Update: I moved my other comment to my response above ).

Travis.

whatdoesitwant’s picture

Hi Travis, thanks for this awesome book.
I am a firm believer in the best tool for the job. So far the development environments for flash are still far superior to any alternatives.
Anyway, I just bought the book and worked through chapter 1, but i'm getting a gorgeous empty node with an empty player. Drupal 6.12, Flash node 6.x-3.1. Is this because of the new flash node or am I doing something wrong? Do you or packt host a support forum?

travist’s picture

whatdoesitwant,

I will talk with Packt about a forum. If they can't provide one, then I will personally start one up at www.tmtdigital.com. In the meantime, feel free to contact me via my contact form and I will help you out the best I can.

Thanks,

Travis.

libeco’s picture

Since I'm having problems too I did just that, contact you. A forum to share experiences would be a good idea I think.

whatdoesitwant’s picture

I just manually retried the flash content post in a live environment and everything went fine. Maybe something with the virtual directory on my local xampp environment. I'll see what i can find.

whatdoesitwant’s picture

Sorry Travis, your instructions were fine.

The difference between my live environment and my local xampp environment is this:

Xampp on Vista:
On upload flash node creates- a folder flash with the chapter1.swf and a subfolder temp with another instance of chapter1.swf in the root of drupal installation.
flash/chapter1.swf
flash/temp/chapter1.swf
The swf file is not displayed.

Live:
On upload flash node creates- a folder flash with the chapter1.swf and a subfolder temp with another instance of chapter1.swf in the folder sites/default/files/ of the drupal installation.
sites/default/files/flash/chapter1.swf
sites/default/files/flash/temp/chapter1.swf
The swf file is displayed.

Update
I now see css and js folders in my local root as well. Apparently something is wrong in my settings or htaccess. This incarnation of the local environment is a migration from the live environment (backup and migrate rocks!). I'll check these first before looking at xampp.

whatdoesitwant’s picture

Update
With regard to my previous post: I did a clean install and everything was fine again.

Services
Now as for Services and AMFPHP in Chapter 2. I recommend not to use the dev version of Services for this book. It uses a separate module for key authentication that has to be activated in its own right.

If you are on a windows machine like I am, virtual directories become a problem. Either do a Drupal installation somewhere in your localhost directory (e.g. http://localhost/drupal/) without aliases in your httpd-vhosts.conf file or switch to OSX with MAMP or to Linux. I speculate that Services needs specific handling in httpd-vhosts.conf but I haven't figured it out.

No worries. Virtual directories on xampp should be fine. It was just my firewall.

If testing locally and you're getting these errors, be sure that your firewall is not blocking FLEX or FLASH.

libeco’s picture

Travis told me to use 0.14 for the book instead of the 2.x dev. And indeed it worked with 0.14, so I guess once 2.x is around some documentation is required to start people up...

ecksley’s picture

I enjoyed the book and Travis' presentation in DC. It was indispensable to my understanding how to integrate Flash with Drupal. I am using the older version of services on my site and things are working well. But I can't help but feel like I should update to 6.x-2.

For example, if I want to use the Deploy module I need the more recent 6.x-2 branch. Is there any plan to update your book for the more recent version?

Is anyone aware of solid documentation on how to make Flash work with the 6.x-2 API? The Drupal call views.get function (for example) is different and I'm not smart enough to figure out the new arguments (hash, timestamp, nonce) work.

Thanks again.

sirajrkhan’s picture

Guys,

Even i am stuck with more-or-less same issue, I am creating a POC of Flex-Drupal Interaction using AMFPHP & Services Module, but I am not able to get node.load... I have explained the issue in detail [along with snapshot] here: http://drupal.org/node/502180

Any help would be highly appreciated.

ebeyrent’s picture

Congratulations Travis!

I am pleased to see the release of this book, and the covering of Flash integration with Drupal. Being able to use Flash and Flex with Drupal opens up a whole new world of possibilities.

Thanks for all your work on Twolia.com - Dash Media Player was a lot of fun to work with.

3CWebDev’s picture

I just ordered it from Amazon. I am looking forward to gaining an understanding of integrating Flash technologies with Drupal websites!

stlrealtor’s picture

I think I will buy this book for my go to web guy, also, I am always hiring interns to work on my drupal realtor site. do you think this is a book that a newbie could read and comprehend?

travist’s picture

This book is written for developers, but I tried my best to write it so that you do not have to have Drupal knowledge to dive in and make Flash applications. The one thing that I would recommend is at least some form of programming experience. There are many code examples in this book, which might make it hard for a non-programmer to follow along with some of the more advanced examples.

I hope this answers your question.

Travis.

stevenjbarnes’s picture

Well Travis, I certainly wish I had your book when I was building this site: www.overmeducated.com (basically: a flash-based tree-graph of the drupal menu structure and content here at www.overmeducated.com/drupal6). I had really struggled with getting the Services module to be play nice. Still, it looks like some of your chapters will help me finish this project off. In particular, I still want to implement commenting from the flash front end.

I'm off to get my librarian to order it right now.

Cheers,

steven

bignab’s picture

Thanks for all the work on the flashvideo module. This book is helping me bring together all the other media on my sites.

Dokuro’s picture

Hey Travis,

Congrats, wish I would have saw this sooner. Can't wait to read it, it will be a bit before it gets to this side of the world.

Regards,

Shaun

Anonymous’s picture

Travis,

First I'd like to cast my vote for Flash is NOT EVIL. I personally love Flash and have never understood why so many people blame the program for the content that is created in it. You can build anything in Flash. If advertisers use it heavily, it's because it is the single best way to put dynamic content on the web. If they choose to use it for evil, that is too bad, but you can't blame Flash.

OK, enough of that. I have a serious question. I've managed to cobble together some Flash stuff without the benefit of your book, and though had I had the book it would have saved me hours of time and resulted in a slicker solution, my stuff works fine with one tiny problem: load times. What is the most efficient way to get Flash content to load promptly, especially when Flash is in a side panel. I'm putting the same swf into a side panel of every Book page, but it re-loads each time. Even coming from cache, this creates a significant pause. What I'd love to be able to do is prevent the swf from re-loading, and skip straight to the part where it is acquiring page-specific data. If you have an answer for that, it is easily worth the price of the book to me.

It may be that making a service call instead of using html LoadVars to bring the data into Flash with the swf is already more efficient. I had not tried that approach because of something about one of the modules I would have had to install...was there something unstable? I don't recall.

Dokuro’s picture

I would like to say one more thing about this book. This book is not fluff. I know I have bought some drupal books in the past, and when I open them up, it's full of info I could have found on drupal.org easily.

This book really gets down and dirty into what you need to do and I doubt you would find this anywhere so nice and neat inside of the drupal community. It is quality work and worth the money. Good Job again!

goose2000’s picture

Great, I ordered it just now. Thanks! love FLASH, love Drupal.

claritygraphics’s picture

I'm excited about this book. I've just become involved in Drupal and created a site and wanted to put in a nice flash slide show I made for my client. I couldn't figure out what to do, and wound up using Lightbox, which was fine, but felt sort of frustrated by having to dump what I'd done on my own.

Flash has its drawbacks, but then, so does Drupal. I think Adobe's pricing is fair for what it offers -- and blaming Flash for what people make with it is like blaming science for what unethical scientists do with it.

Anyway, thanks Travis -- there is such a lack of documentation for Drupal (one of it's main faults) and I'm sure this book will solve a lot of mysteries for me.

alibasham’s picture

I sincerely wish if there was a forum for this book!

The author seems to be a bit busy to develop it!

However the book is amazing!

I request & encourage other users / readers to share their websites where they are implementing the book principles.

Regards,

mikerz’s picture

Travis,

Why do you not recommend a fully flash front end? To me, the ideal use for drupal is that you have one place to manage all data, and can maintain many versions of a site (pure flash/html+js/pure html/arbitrary custom version) without much pain.

The reason that I would want a full flash site is for its refined graphical capabilities -- used in transitions or whatever else is needed (perhaps I've decided to implement the entire site with papervision3d+alchemy). I don't like having to restart a page to show content and want to avoid this situation as much as possible (it could be totally avoided with a fully flash-rendered site). To implement this in flash with drupal and services, you could probably get away with just using SWFAddress.

I totally understand the reasons given to compartmentalize flash into widgets, but it's been my goal for a while to create a method that can create a site as described above, if only for the level of potential user immersion. Perhaps what I want to build isn't entirely feasible yet, but in the next few years it definitely will be.

PS I'm buying your book very soon

-Michael

myst.riven’s picture

I got this book and it's wonderful. It gives a lot of freedom to me now when I develop Flash for Drupal and I don't have to limit myself or worry too much now. It's still a lot of knowledge and I don't know it all yet, but having the book is so helpful. (^_^)

mjax’s picture

I am half way through the book. It hasn't taken me very long. Excellent book Travis. Very well written. Good examples. I share the same asynchronous communication issues with my wife as well.

I will be using these examples to write the eLearning app for OnlineFashionCourses.com (a cheap plug I know).

I recommend this book to anyone looking to put a pretty face on a Drupal app.

bernz’s picture

If I were to guess what the future holds for Flash...I would say it that it will continue to be ahead of others trying to replace it. Drupal will continue to be a category leader as well.

A couple of years ago, my team and I developed a Drupal back-end to a Flash front-end website for a shopping centre re-development called Uptown.

I wouldn't recommend doing this type of development today because of the time involved. Building a Drupal based website with Flash as a multimedia component makes more sense to me now.

Anyway, I could go on and on...I look forward to reading your book Travis.

Bernz

mcfilms’s picture

Hi Travis,

Obviously Flash is a powerful tool to present information in new and dynamic ways. With SWFAddress allowing deep linking and Google doing a better job indexing Flash content,, I don't think you can chalk Flash up as "Evil" and call it a day.

I got your book today. I burned through reading the first few chapters nodding my head and smiling. "This'll be easy" I thought. Well I am stuck on Chapter Two. The problem looks VERY much like the Race Conditions you describe on page 53 and 54. But the only trouble is, I am running the code from the Chapter 2 examples folder. Of course I had to modify it for my use, changing the base url for my domain. and using loadnode( 4 ); for my node.
My trace window gets the "We're connected". I get the sessionID. But I also get Missing Required Arguments 106 AMFPHP_RUNTIME_ERROR (correct path to module) unknown error type.

Now I am doing two things different than the book and I am trying to see if you (or anyone) knows if either of these is causing my troubles. Or if it is simply "pilot error".

1.) I am creating the SWF locally, but connecting to Drupal on the web. I have allowed the remote domain connection.
2.) I am using services-6.x-2.x-dev version of the Services module. I noted somewhere you said use the older version. Is this still the best bet?

Previously, I tried the Richard Leggett Actionscript 3 package and followed the tutorial from http://www.adobe.com/devnet/flash/articles/drupal_flash.html

I was actually able to connect and load nodes and views in with that package, but it is not nearly as well documented as your book. I especially need to load in complicated nodes (with multiple images). If I'm lost WITH your book, I'll never make it using a 5 page article on Adobe.com for a guide.

My next step is to install MAMP and use the older version of the module. That way I can follow the book precisely. I'll report back here on that.

In the meantime, if anyone can shed some light on what my problem is, I'd sure appreciate it.

Jerry

A list of some of the Drupal sites I have designed and/or developed can be viewed at motioncity.com

mcfilms’s picture

For what it's worth, install MAMP and running everything locally and using the older version of the module that is suggested in the book, worked for me. Hope it all works when I upload it.

A list of some of the Drupal sites I have designed and/or developed can be viewed at motioncity.com

pisosse’s picture

I followed that 2 chapter and got stuck on *** Security Sandbox Violation ***..

I'm on a local mamp setup and i tried with a crossdomain.xml in htdocs folder and putting the swf in there as well.

No matter what I do i get that security error. In debuggin it seems to look for the service and swf in the right place.. but alas

so question:

Is crossdomain.xml the solution?

Where should I put that file when working with mamp and a drupal installation in localhost

does it matter where I have my flash files in local development?

are they both trying to use port 80 a the same time?

arrg.. I really see perspektives in this and are frustrated gotten stuck allready ;-)

log:

Attemping to launch and connect to Player using URL /Users/pisosse/H O M E/PROJECTS/LUNDINO/drupal_flash/MenuTest.swf
[SWF] Users:pisosse:H O M E:PROJECTS:LUNDINO:drupal_flash:MenuTest.swf - 6424 bytes after decompression
*** Security Sandbox Violation ***
Connection to http://localhost/drupal/services/amfphp halted - not permitted from file:///Users/pisosse/H O M E/PROJECTS/LUNDINO/drupal_flash/MenuTest.swf
-- Untrusted local SWFs may not contact the Internet.
SecurityError: Error #2028: Local-with-filesystem SWF file file:///Users/pisosse/H O M E/PROJECTS/LUNDINO/drupal_flash/MenuTest.swf cannot access Internet URL http://localhost/drupal/services/amfphp.
at flash.net::NetConnection/connect()
at MenuTest_fla::MainTimeline/frame1()[/Users/pisosse/H O M E/PROJECTS/LUNDINO/drupal_flash/main.as:12]
Cannot display source code at this location.

mariettehr’s picture

First of all, this is a really great book!

I'm currently doing an internship where they are asking me to migrate a total flash web site into a cms (to have a backoffice and all that...). After days of frustrations on forums and tutorials etc, I bought your this book, which I think might save my life :-)
Having a little problem in chapter 2, I was wondering if anyone had come accross the same thing or might know what I'm missing out on...

Everything was working fine until I wanted to dynamically load the nodes in to flash by replacing loadNode( 2 ); by loadNode( nodeId );
I've also added the var nodeId:Number = root.loaderInfo.parameters.node; variable and node=2 Flashvars in my drupal flash page

It doesn't seem like a very complicated step to me so I really don't see where the problem comes from, if anyone's got an idea, I would VERY much appreciate it so that I can go one trying out the rest of the stuff in the book :-)

mariettehr’s picture

Okay... don't laugh at me :-)
I hadn't payed attention to switching to plain text editor in my create flash page ! and so, by looking in the source code it became obvious that my flashvars had a problem : flashvars="<p>node=24</p>"
Anyway, those are the joys of a newbee programmer, spending three hours on a <p> </p> too much lol

Jetson’s picture

Hi-

I'm trying to follow along in Flash with Drupal and also getting stuck in Chapter 2, page 55.

When I try to load node 2 (in my case, node 5657), I get this:

We are connected!!!
Session Id: f0948e0bba09c0507ea1c49907b64931
/Applications/MAMP/htdocs/sites/default/modules/services/servers/amfphp/amfphp.module
Unknown error type
Missing required arguments.
106
AMFPHP_RUNTIME_ERROR

I rolled back to the Beta1 version of AMFPHP. With Beta2, I get the same error on line 74 instead of 101.

Kinda throws cold water on my ability to follow along with this (good? bad?) book

Thanks!

kevinsbath’s picture

Stuck on page 55 - exact problem as you describe above. Unable to continue any further.

Travis - any ideas? Really want to get to the meaty image and views chapters!!!!

mcfilms’s picture

You MUST use the versions of Services recommended in the book and in the thread above (6.x-0.14 I think). I also think the book specifies a version of AMFPHP to use. Changes were made to the Services module that effectively made the instructions in the book no longer work. The 2.0 branch of Services has been out for many months. But sadly, neither the author nor the publisher have indicated they will update the information in the book.

So if you want to follow along with the book, you need to use the older software.

A list of some of the Drupal sites I have designed and/or developed can be viewed at motioncity.com

travist’s picture

You can use the latest version of Services, but you will need to setup the Services module differently. Here is what I know about the latest version of Services that will need to be modified to walk along with this book.

You will need to install the Key Authentication module along with the Services module. Then, when you create your API Key, you will need to select whatever services you require within your Flash application. For example, if you call "system.connect", then you will need to make sure that the system.connect checkbox is checked when you setup or edit your API Key.

Next, you will need to navigate to the Services Administrator, and then click on the Settings tab. From there, you will then need to enable the Key Authentication module using the Authentication module drop-down selection. This should be able to get this media player working with the latest Services module.

pagemaker’s picture

I did all that - it's pretty intuitive - but....... I still get that blasted message:
"Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
at Main$iinit()"
I must have seen it now for a thousant times and I'm pretty much fed up.

I tried every thing I could find via Google searching on "NetConnection.Call.Badversion" - still the same result.

To day I deleted all and started over again; same result.

BTW, there are some changes in Permissions too. I've checked Anonymous and Authenticated user on Services module > administer services. That seems to comply with '#acces arguments' => array('administer services');

Questions:
1. Where in the chain: Flash, Drupal Services module, Drupal AMFPHP module, amfphp server is that blasted message generated?
2. What is it that is being "Called"?
3. What is it that is supposed to be the "Bad.Version"?
4. Then again, what should be the right version?

It would be very nice to find out what's behind page 47 of your book. Thanks in advance.

travist’s picture

I wrote up a tutorial to help people deal with the latest Services 2.x version.

http://www.mediafront.org/documentation/drupalmediafront-osm-cms-integra...

Other than that, to deal with your "Bad.Version" call, can you email me your code and I will try to run it on my local machine? I might be able to figure out what is up.

Hope this helps.

Travis.

bartwybouw’s picture

Did all that and still does not work.

We are connected!!!
Session Id: a9c909c4b1cf4f862771b7b2eef9d779
AMFPHP_RUNTIME_ERROR
Unknown error type
/Applications/MAMP/htdocs/drupal6/sites/default/modules/services/servers/amfphp/amfphp.inc
78
Missing required arguments.

Is it possible to test the service from within Drupal in Administer>site buidling>services , then clikc on the service and just add the nodiID in tat page and then click "call method" ?

rockfer’s picture

I've tried with all the suggested versions of services and amfPHP with no luck. Please provide some guidance as to what is causing this error. I want to get to the interesting part!!! stuck on page 55 too!

travist’s picture

So, apparently the latest version of AMFPHP might be causing this issue. I would recommend downloading and installing the version used in the book, which I believe was 1.9.beta2. I would try that along with the latest version of Services, but please walk through my tutorial that I provide in the post above to help you get through the differences between the latest Services module and what is shown in the book.

I too would love for you to get past page 55! :)

caponey’s picture

do you need to know how to program Flash to learn how to add it to drupal?
we need a headline kind of block, for video game news and topics, basically like Ddblock offers only Flash based.
will this book help us out? I have no Flash knowledge whatsoever.

monti’s picture

am not sure what page 55 says, but it looks like I am stuck at the same spot with the rest of you.

if anybody knows how to fix this issue - http://drupal.org/node/773934#comment-3598632,
please share your insights with the class !

cheers !

mrzick’s picture

Please read my Page 55 post below! Hopes this helps!

mrzick’s picture

For everyone that's stuck at page 55, what you need to do is follow the directions in the book exactly including ALL versions of software used (look closer at the screenshots). I was stuck to until I read some of these posts and did some detective work (debugging that is).

I suggest starting back at page 38 on undo the services you installed and then start over again.

Here's the links for the book versions used.

Services:
http://drupal.org/node/304938

Amfphp Service:
http://drupal.org/node/374503

AMFPHP 1.9-Beta 1:
http://sourceforge.net/projects/amfphp/files/amfphp/amfphp%201.9%20beta2...

Have fun!

And thanks for writing this Travis and all those involved!!! Works great!

travist’s picture

Thank you so much mrzick for posting that. It means a lot to me.

piermaria.cosina’s picture

After 2 weeks of test I've found that works also with these modules, I will try tu update some and see if still work fine for now the combination is:

flashnode 6.x-3.1 http://drupal.org/node/392900
services 6.x-0.14 http://drupal.org/node/487784
amfphp module 6.x-1.0-beta2 http://drupal.org/node/741838
amfphp server 1.9 http://sourceforge.net/projects/amfphp/files/amfphp/amfphp%201.9.zip/dow...

if you are using Flash CS5 remember to convert the input textfield in FLAs to the new framework TLF text and to embed the proper chars elsewhere you will get strange missing chars because there is a bug in converting cs4 text to cs5 even if it maintain as classic textfield it don't embed properly the chars and is missing some.
Also check in the AMFPHP tab in services that the text encoding is the right one for your site.

Appart from this great book really, it change my days, I'm still waiting for one to integrate with FLEX :)
Pier

piermaria.cosina’s picture

with the configuration above I was able to get node but not view from Drupal, with the latest view module 2.11 also in Drupal service tab it gives Access denied, so I've downgraded to 2.5 that is what is used in the book this is the link http://drupal.org/node/431016 and it was working in Drupal service but in flex/flash it was returning error 76 or 106 and Access denied, so for 2 days I've tried whatever possible and at the end the solution was soooo easy.

_model.drupalService.serviceCall( "views.get",onSuccess, onFault, viewName, _model.drupalService.sessionId);

where is the difference with the book? the last 2 argument are swapped, in the book is
drupal.call("views.get", viewResponse, sessionId, _viewName) and is not working for me return AccessDenied with service 1.0 beta 1 error 76 with beta 2 106
so you have to swap the viewname with the sessionId.
And now is working like a charm!!!

Thanks to Fluid for the solution at this link http://drupal.org/node/504326

Crazy thing
Pier

monti’s picture

thank you @mrzick !

using the services version you suggested (6.x-0.13) solved the problem for me.
the somewhat newer version mentioned later (6.x-0.14) did not.

Good investigation. I wouldn't even think to use an OLDER version.
Cheers !!