Popular Posts

 
  • Tips To Overcome And Help Your Smoking Cessation
  • The Marlboro Man & Me
  • Yahoo! Flash Platform is Hiring!
  • How Do You Get Hemorrhoids?
  • Check out File Size before Downloading the File
  • Drugstore Hemorrhoid Medications
  • Some Facts About Dealing With Lapses
  • The Powers of a Positive Attitude
  • So You Want To Quit Smoking?
  • Bah humbug on colds and flus
  • - Sender: admin | Comments add

    Just got in to Toronto for FITC. I’m looking forward to presenting tomorrow during the keynote on all of the cool things that we’ve been working on for the last year, and the even cooler things to come.

    I’m also looking forward to Joa Ebert’s talk on Hydra and Flash Player’s own Jim Corbett who will be giving an updated version of his popular talk from MAX, “Flash Player Internals.” If you want to know how Flash Player works and what really happens when you run ActionScript, do a tween, or use a filter, make sure you make it to this session.

    The sessions overall look great (as always for FITC), so I’ll try to get some blogging in along the way.

    If you are at the conference, say “hi.” I should have Flash swag with me at all times ;)

    - Sender: admin | Comments add

    Check out Adobe Labs to download Flash Player 10 beta, take the new demos for a spin, and watch videos about the new features.

    The key features for Flash Player 10 beta include:

    • 3D Effects - transform any display object in 3D with easy to use ActionScript APIs while retaining full interactivity.
    • Custom Filters and Effects - In addition to the native filters in Flash Player you can also make your own using Adobe Pixel Bender. These filters, blend modes and fills can be scripted and animated using ActionScript.
    • New Text Engine - Bi-directional text, vertical layout, styeable device fonts are all part of the capabilities of the new text engine. In addition, this generic engine will power a new set of text components with really mazing typographic and layout functionality.
    • Visual Performance - through two new wmode settings you will be able to take advantage of the video card to speed up rendering and blitting.
    • Vector - A new ECMAScript 4 data type that is very much like an array but only accepts one type. By knowing what type will be stored in the array access performanc is dramatically faster.
    • Runtime FileReference access - With Flash Player 10 beta you can open a file dialog box to ask a user to select a file and load it into the runtime. You can also save content from the runtime to the desktop.

    There is a lot more in this release, and I look forward to posting more about it soon!

    - Sender: admin | Comments add

    I’m starting a new category on my blog called “Why it Works that Way” (WIWTW). I was chatting with some of the user/community groups leaders yesterday and was saying that my favorite part of working on the Flash Player team is that I get to ask all of the questions I’ve wondered about but didn’t know who to ask. Now I just stroll down the hall and ask the person that wrote the feature something to the effect of “Why is the sky blue?”

    Normally, I get an answer that makes a great wooshing sound as it goes over my head. Then in realization that I am a mere mortal, I get a really great answer that explains so much about how Flash works in general. You’d be amazed about how a question about transparency has big ramifications on accessibility. Realizing how useful this would have been when I was writing my own code for a living, I want to share some of the answers I’m learning.

    So, today’s topic: Object.watch. Watch is a way of monitoring the value of a variable and if something tried to change it, a callback is invocked with the old value, new value, and property name. You can then validate, modify, or otherwise cleanup any values BEFORE they are made into values and any other part of the application can use the values. Anything you returned from the callback would become the new value of the variable.

    I LOVED this method in ActionScript 2. I was horrified the first time I got a compiler error in AS3 and discovered my buddy was no longer there. Thinking that it was an oversight, I went and gave my plea/whine to many engineers. Surely everyone would recognize the inherent value of watch! (ok, so I am playing this up just a whee bit). I was really surprised to see that it wasn’t an oversight but a conscious decision and there was very strong feeling that it should never ever come back. I think the exact phrase was “over my dead body.”

    Here’s why. Object.watch has a huge performance overhead.

    My first reaction was, “well, what if I want to take on this performance overhead in my application to get its usefulness???” Then it was patiently explained to me that it wasn’t just my SWF that would slow down, it was player was always slower just because the capability was there. Removing Object.watch sped up overall Flash Player performance a few percentage points. Every time you set a veariable value, Flash Player was having to check to see if the variable was being watched. As that realization dawned on me I realized that my Object.watch buddy was really more of a little devil sitting on my shoulder tempting me into laziness.

    Solution: The way in AS2 or AS3 to do the exact same thing in a more performance friendly way is to set up getters and setters for the variable and then do whatever operations you want. It is a little more work (typing), but actually does have some practical performance benefits. This does have the downside of not working for people that still use frame actions, but I think that is a minor trade off for an across the board speed improvement.

    Future WIWTWs
    If there is a question you want me to ask about the inner workings of Flash Player or ActionScript, go to this page and submit a comment. I’d like to keep comments on this post relevant to the post itself.

    - Sender: admin | Comments add

    Adobe has announced security changes and enhancements that will roll out with an upcoming security update to Flash Player 9. The Adobe Developer Connection has an article detailing the changes and who is impacted. If any of the following bullets is applicable to you, please be sure to read the article as your content may be affected.

    • You use sockets or XMLSockets, regardless of the domain you are connecting to
    • You use addRequestHeader or URLRequest.requestHeaders in any network API call when sending or loading data cross-domain
    • You provide access to content on remote domains as a web service provider
    • You have SWFs that are exported for Flash Player 7 (SWF7) or below that communicate with the hosting HTML by any means
    • You use “javascript:” through network APIs to communicate outside a SWF

    Keep in mind that the descriptions above are meant to capture a broad group of people. The affected areas are tailored to keep normal usage as unaffected as possible. For instance, while the last bullet tries to capture anyone using “Javascript:,” the actual change only involves “Javascript:” being used in ways that I haven’t encountered before. Normal uses through getURL and navigateToURL will be unaffected.

    Also, if you are asking yourself, “Didn’t I just hear about socket policies back in December?,” you’d be right. With Flash Player 9.0.115, a two phased approach was announced for authorizing socket policy files. Phase 1 was implemented with 9.0.115, and phase 2 will be rolled out in the April release. By doing a slow rollout of this new authorization process, we wanted to give developers the time they needed to make changes to affected content before their users have a player that enforces the new policies.

    While you are in a security frame of mind, I’d like to point out another article that is on the Adobe Developer Connection. Peleus Uhley, senior security researcher at Adobe, wrote an article on development practices for creating secure SWFs that should be required reading for any ActionScript developer.

    The Flash Player team works hard to ensure security within the player, but how you design your application is just as important. The flow of data through an application, the configuration of network and script permissions and even where you host your SWF can raise or lower the exposure to your server. Peleus’s article can provide advice that will be valuable to even seasoned ActionScript developers.

    - Sender: admin | Comments add

    I’ve been hearing a few “where did my components go?” questions from people working with Flash CS3 Professional. Just in case anyone is in that boat, don’t worry, they are still there!

    If you set an FLA to export for ActionScript 1, or ActionScript 2, the components panel will automatically refresh with the components that you are familiar with from Flash 8 Professional. If you change the file to export for ActionScript 3.0, you will see the new components. Flash will always show you all the components that you are able to use given your export target.

    In Flash CS3, the Flash team added a number of light-weight, easily skinnable components that are written in AS 3.0. However, since they are built to use the new ActionScript Virtual Machine (AVM2), they are only going to work in SWFs that are exported for Flash Player 9 or higher and for ActionScript 3.0.

    For those that haven’t started working with Flash CS3 Professional yet, these components are hot! I have to admit that I have never liked components. I prefer to build things from the ground up myself and have complete design control. Also, my days of working on advertiser-related projects has left me with an obsession for small file sizes that has never let me use the AS2 components.

    When I first started at Adobe and got to see behind the curtain, I was really shocked by the new components. The team had really listened to all of the objections about the components and done something about them.

    Now, the components work off shared classes which means incremental growth in SWF size per additional component. The base component class is under 10K and is screaming fast. Grant Skinner showed an example of a data grid with ONE MILLION entries with text and images that scrolled smoothly, efficiently, and without spiking the processor.

    Beyond the geek factor though, the components are skinnable in a way that makes sense to designers. Shifting sides of the brain for a moment, the way I edit a symbol in Flash is to double click on it, make my changes, and go back out to the parent of the instance I was editing. It allows me to see the object in the context of what I am creating. This was probably the most valuable feature among some pretty heavy hitting features in Flash 5.

    In Flash CS3, the same is now true for components. If you double click on a components, something happens now! You will see all of the states and elements that make up the component as symbols laid out on the stage. They are nicely labeled in their custom layout, and all you have to do to change the styling is to double click again on the state you want to modify, make your changes and….. well, there is no more and. that’s it.

    Back on the developer side though, you also have APIs to style the components at runtime if you happen to prefer things that way. You can also target all of the instances of a components, or just a single one. I’m pretty amazed by the many ways the new components keep demonstrating their flexibility.

    - Sender: admin | Comments add

    Yesterday, Emmy Huang and I announced some of the new features that will be going into Astro (The next version of Flash Player). We got a great response from attendees, and I hope you will be equally excited by what is coming next. If you’d like to see the video, take a look at Aral Balkan’s recording.

    So what’s new?

    Text:
    Astro will have a new text layout engine that will expose low-level primitives. This means that we aren’t adding a new TextField, but instead, we are providing hooks that ActionScript 3.0 components will be written on. Adobe is working on a nice set of components that support bi-directional text (also known as right to left text) and layout flows like columns, inline HTML tables, and improved inline image support.

    This demo shows a simple paragraph with some not-so-simple elements. The paragraph shows 10 languages including arabic, hebrew and thai. Emmy then demonstrated that as she re-sized the window, the hebrew text break as it should with the left most word dropping down to the next line when it had to wrap. She also demoed the same example translated in to japanese which has a different line breaking rule system (oh! and it was also fully justified text).

    3D Effects
    Astro will also be adding support for 3D effects focusing on ease of use. Any display object will be able to be positioned and rotated in 3D space by using new DisplayObject APIs like rotationX, rotationY, and rotationZ (which is just an alternate access to existing rotation property). x and y are going to be joined by the new z property that will resize a display object to be in correct size.

    The first example I showed was a video of Natzke running in the FLV playback component. By adjusting sliders, I started the video spinning in the X,Y, and Z axes. I swear I wasn’t trying to condemn Eric to to superman’s prison dimension! I also demonstrated a 3D animation tween API by clicking a button and showing the video animating from any starting orientation to a pre-defined location.

    The last part of the example was showing that the playback component skin was still fully functional. I could still click on the play/pause button and even drag the seek slider while the video is transformed. Any display object will be able to be rotated with the interactivity still intact.

    To show off the APIs a bit, I also showed a more creative example in the form of a galaxy animation made of three movie clips rotating in 3D space. I thought the effect turned out pretty well, but I learned a lot about even more capabilities of the feature that I am looking forward to demonstrating at future conferences.

    Custom Filters
    While the first two demos were pretty exciting to me, I think the big feature is Hydra. Hydra is a new programming language that Adobe is working on for pixel shading. With this you can write your own filters to be used alongside the existing built-in filters.

    Emmy introduced this feature by bringing back Chris Georgenes’s monkey that we used to demo the original filter. We showed the monkey but now looking a bit warped by a new twirl filter. I then demoed the Adobe Image Foundation toolkit which was posted to Adobe labs yesterday! The toolkit let’s you develop Hydra filters and comes with several great samples. Once you compile the filter it will preview it with live adjustable parameters that will apply the filters to any image that you load into the tool.

    Already we’ve recieved feedback from develoeprs that are developing some great filters in less than a day of the toolkit being available. If you develop one, post an image of the filter effect online or send it my way, I’d love to see them!