I was very pleased that YouTube released a ActionScript 3 API for their Chromeless Player. I looked at some availabe code snippets on different blogs and unfortunateley, I had to realize that the API is not really object-oriented and a little bit annoying to work with (because of the missing code completion).
My current project - an independent Web Video Player - is still using the old workaround YouTube API Tubeloc and I have to change this. That is the reason why I created a Flex Component for the new YouTube AS3 API. If you would like to use my code for your Flex or Air projects, please feel free to use it and if you will find some bugs, please leave a comment!
Now I will start with some explanations of my code. I create 4 classes, which manage the whole YouTube Chromeless API. The class YouTubeAs3 contains all the most important functions and is based on the Flex Framework(!). The classes AirYouTube and FlexYouTube extends the YouTubeAs3 class. Both classes are Flex Framework based classes. I had to divide the YouTubeAs3 class into these 2 classes, because the Adobe Air environment don't support the command Security.allowDomain() and it is cleaner to use this command for a web-based projects. So therefore please use the FlexYouTube component for web-based projects and the AirYouTube component for your Air projects. The fourth class FlashYouTube is an only Flash plattform based class, that should be very handy to use for non-Flex projects. Read more...
For every project you should check your skills before you start. It helps a lot for preventing possible problems and makes the life easier. Thus I highly recommend to do a self-assessment before your start as a Flash Independent Developer. After this self-assessment you should have a very clear picture about your abilities, skills and of course your weaknesses. It is very important that you know your weaknesses because you can outsource some of this problems to your network buddies. An independent team-oriented working approach works in this case very well, because it replaces your weakness with a strength of another person. It works like the Captain Planet or the A-Team metaphor 😉
Skills-Mindmap Flash Independent Developer
On the mindmap you can see the 4 core skills: Design, general knowledge about New Media, Programming (Computer Science) and soft skills. As an employee it is not so important that you have skills in each of these core skills, but as an Independent Developer you have to be an allrounder. gSkinner wrote a nice post about the must-have qualifications as a Flash Developer. I would like to add the points doing project management and creating networks to this list. An (Flash) Independent Developer has to be fancy to do project management tasks and get in touch with other people. If you don't like it, then you should not become an (Flash) Independent Developer! But I think the completely different charakter of the tasks make the life of an (Flash) Independent Developer so much more interesting. Read more...
A couple of months ago I started thinking about becoming an Independent (Flash) Developer. So I wrote a blog series in German about this topic. This blog series describes my idea behind the passion of an Independent (Flash) developer. Unfortunately, the feedback was quite less for me and zproxy is right, when he said I should write this in English because of the less size of German speaking flash developers and that it is also an interesting subject for all English speaking flash developer... So I decided to translate all my articles about this subject in English. Who is able to read German can have a look on the complete series here.
Firstly, before I started any activity into this direction of becoming an Independent (Flash) Developer, I had to define my personal idea of an Independet (Flash) Developer.
So my main goal is to do cool things with Flash or other Technologies, which I really enjoy to realize. That could be a Flash Game, or an open source library for a special problem or just a nice software or anything, what you can imagine.
After this process of creation I must have a product, which brings some money in my pocket, so that I am able to pay my rent and living costs. So the most important thing for me is that this product has a relation to things I love to do! The earning or the income plays minor role. I hope when you do cool things the money will come...
In addition to this, I thought freelancing could be the solution. Do some small projects, which are ok for me and spend the rest of my time with the cool things I would like to do... But later I noticed for me that is not the freedom I want to have. So I spent more and more time to find a nice solution and I think I found a plan which could work. I am going to tell you the details in this blog series about the passions and opportunities of an Independent (Flash) Developer.
Comparing the job opportunities
The information size of my solution is too big for one blog article, so I divided it in 10 parts. Every part explains a very important part of the Independent (Flash) Developers journey. I created a Mindmap for you which shows all subjects and relation beyond my blog series I am going to mention. Read more...
I have already mentioned it in an earlier blog post that I am still working on a vimeo component for the Adobe AIR environment. Now I have created version which is stable enough for a intensive testings. So if you would like to use it for your Air Application, don't hesitate to use it. I would be very happy about some feedback messages from you.
Now I describe some special functionality compared to my FlexVimeo Player component. Because of the incompatible command Security.allowDomain() in the Adobe Air environment (which is essential for working with the Vimeo Moogaloop API ), I had to create a seperate remote player. This remote player receives control message and send control messages via LocalConnection to the AirVimeoPlayer Component. So if you use my AirVimeoPlayer Component, you must always use my remote_vimeo.swf File for controlling the Vimeo Moogaloop API. It works in the same way as the youTube AS3 API Wrapper.
The other not so nice thing is that I ran in some perfomance issue because of sending to many messages via LocalConnection. So I had to put down the amount of update message for the PlayingState.Playing, but that should not be problem for you. In my cases it works fine.
More than 2 years ago I wrote a blog post about Flash Game Programming. Since this blog post until today a lot of actions happens in the Flash Game Community. Some Flash Game Developer created great classes, libraries and frameworks, which makes our life as a Flash Game Developer so much simpler. In this blog post I would like to give a short overview which tools are available at the moment.
General Frameworks & Classes
In this category you can find tools, which solve some common problems like resource management, loading processes, screen management, level management and so on
Last time I worked a little with the Moogaloop JavaScript API, because I thought it would be a nice workaround solution for integrate the Moogaloop API in an Adobe AIR Application. First time I tried the example code from the vimeo api documentation and it worked fine on my webserver. But for my case I did not want to use the SWIFF JavaScript Code. Only the SWFObject Code for embedding Flash Content in HTML was for me o.k. So I spent a few hours to get this API work without this SWIFF JavaScript thing. I tried a lot, failed a lot, cried a lot and laughed a lot about myself and my limited JavaScript knowledge. So now I am happy with my current version, because it works fine without this SWIFF thing, except loading a new Video (or should I say loading a new clipID) into this SWF Container failed. So if anyone has an idea, please post a comment here!
I was very happy after completing my extended VimeoPlayer Class, so happy that I had enough motivation to wrote a Flex Component. With my component it is now very easy to use the moogaloop API in Flex. The functionality features are the same as my VimeoPlayer class, except that I also support some Flex-based features (Data-Binding, updatedRendering).
I created a very ugly and simple Flex GUI Interface, which demonstrates the functionality of this Flex Component. The component has some useful attributes / properties and some Functions. Here a short overview:
FlexVimeoPlayer Properties:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Bindable]publicvideoClipID:int;// The vimeo video clip id
The API functions to control the vimeo player api are still the same, except the setSize() Function is not available anymore. You can use the width and height properties of the component as every other Flex Component. Here are the available functions: Read more...
The last weeks I dealt with the vimeo Moogaloop API. The documentation on the JavaScript and Flash API was not so well. But fortunately a couple days ago they updated the documentation for the JavaScript API and then for the Flash API. So now I am able to give an introduction how you can use the Moogaloop API in Flash. The guys from vimeo published a Videowrapper Class which handles the very very basic stuff of the vimeo video player. So you can easily import the vimeo video player in your Flash Projects and you are able to do basic functionality like play(), pause() and loading a new video. But if you wanted to create your own video player, this wrapper class doesnot go too far. So I did some analysis on the moogaloop.swf File and found some interesting functions, that solves some of the problems, which Robert Abramski described in his Blog post Vimeo Player and the Secret API.
In my blog post I will describe how you can use my extended version of the VimeoWrapper class. For a deeper inside of the analysis I will write another blog post. So here you can see the my “ugly vimeo Custom Player” as an example application.
A short explanation of the control buttons. Beginning with the left button :
Play Button -> Play the vimeo video
Pause Button -> Pause the vimeo video
Blue Seek Button -> jump to a defined position at the video
“C” Button -> Change the color of the vimeo video controls
“V” Button -> Loading a new Video
“F” Button -> Resize the vimeo video and the player (Fullscreen Mode)
“M” Button -> Mute the video sound
“U” Button -> Unload the vimeo video and stop the loading process
“Q” Button -> destroy the VimeoPlayer Wrapper Class
Between the video and the controls you can see the duration and the currentTime of the Video and the VideoStatus of the File. Read more...
Please be pleasant with my English. I am not a native English speaker and the English language is one of my personal weaknesses. To improve my English skills, I am planning to write some blog posts in English. So if I wrote any bullshit in these blog posts, please correct me!
Disclaimer End:
At my work at Liip I had to work quite a lot with the Flex Chart API. At some point I was very disappointed about the lack of deeper documentations or advanced flex charts examples. In my mind the whole dashboard flex chart examples are not really helpful, because the examples are not very good real-life examples. But after a few months ago I found some very nice examples for the Flex Chart Advanced stuff and now I would like to give you a short guidance, how you can handle the complex and powerful Flex Chart API.
First Step - Check your Skills
Make sure that you understand the Flex Component Life Cycle and the rendering procedure behind the Flex Framework. The whole Chart Topic is very complex in handling data and handling a good rendering procedure. So that is the reason why it is very important that you understand the basics of the Flex Framework. If you have got some problems to understand the concepts behind the Flex Framework, no problem, I highly recommend the Adobe Max presentation Diving Deep with the Flex Component Lifecycle from Deepa Subramaniam. Otherwise have a look on my SFUG Presentation “Moving from AS3 to Flex”
Second Step – Set up your documentation for the Flex Chart Basic Stuff:
Yeah, the Flex Chart API is very huge. So you have to work a lot with the documentation. Fortunately, the basic Flex Chart stuff is documented very well. If you want to do some minor changes on your chart, please have a look on the Flex Data Visualization documentation (Livedocs) and on the Language Reference. Sometimes you would not get a solution from this documentation, than have a look on the Flex Chart examples at flexexamples.com. Mostly I use the tags-Content overview and press the Buttons “CTRL+F” in Mozilla Firefox for the string search. After that I typed in “LineChart” for Line Chart examples or “Charting” for Flex charts in general. So I am quite fast and I always find the right code snippets. This procedure fits for the basic chart stuff very well.
Third Step – Things are becoming complicated
Oh no, our client wants to have some special item renderings and user interaction on the charts… At this point the Flex Chart could become a nightmare. Why?!
Because of the Flex Charts API Architecture is very complex. A lot of classes are related to each other and so on
The Adobe Livedocs documentation doesn’t really deliver any advanced flex charts examples and doesn’t explain the ideas behind the Flex Charts API Architecture
You don’t have access to the source code of the Flex Charts API, so it is always a black box for you
There are very less information (and blog post) about Advanced Flex Charts API stuff on the internet or you have to pay for this information (lectures in Flex Charts)