Actionscript Javascript Communication | ExternalInterface call and addCallback Tutorial

UPDATE: there’s a newer post about this same thing (actionscript javascript communication – but in as3)! I encourage you to check it out!

Overview:

Using ExternalInterface.addCallback() we can expose an actionscript function and make it available to javascript. This would be helpful to have your webpage with embedded flash communicate to your flash swf file and even control it with javascript! Say we wanted to have buttons in the html page that would control an object in the flash. Communication is a two-way road so wouldn’t it be great to be able to go the other way as well, you can! That is the main function of ExternalInterface! In this example/tutorial I will explain both directions of communication with flash and javascript! Communication between flash and javascript isn’t just a myth or mystery!

Steps:

  1. Be sure to import flash.external.*;
  2. Set up the javascript to actionscript lane of your communication road. (ExternalInterface.addCallback(methodName, instance, method);)
  3. Write your javascript function.
  4. Set up the actionscript to javascript lane. (ExternalInterface.call(functionNameInJavascript);)

We will follow the text’s journey on our road of communication…

The One way: I type in ‘Johnny Appleseed’ in the html text box and press the Send Text To Flash button. The onclick javascript event finds the flash element and calls it’s function (sendTextFromHtml) and then clears the text in the html box. This function has been set up and is exposed to javascript (in actionscript lines 4-7) with the methodName ‘sendTextFromHtml’ while the method it calls is recieveTextFromHtml() in the actionscript. So ‘Johnny Appleseed’ is received as the parameter of the recieveTextFromHtml() function and is assigned to the text of the theText text box.

And back: Now I delete ‘Johnny Appleseed’ since he’s only a fable and enter ‘Paul Bunyan’ in the swf text box and press the Send From Flash to Javascript button. This calls the onRelease function associated with this button. ExternalInterface.call calls the ‘recieveTextFromFlash’ function in the javascript of the page and passes ‘Paul Bunyan’ as the parameter. The javascript function finds the html text box using getElementById() and assigns the parameter to the value of that text box!

This technique will even work if you’re not sending folklore character down the road.

Example:

View the live example here: ActionscriptJavascriptCommunication.html

NEW live example with swfobject2 works in IE! ActionscriptJavascriptCommunication2.html

Actionscript Javascript Communication thumbnail
Actionscript:

import flash.external.*;

//Set up Javascript to Actioscript
var methodName:String = "sendTextFromHtml";
var instance:Object = null;
var method:Function = recieveTextFromHtml;
var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method);

//Actionscript to Javascript
//ExternalInterface.call("recieveTextFromFlash", _root.theText.text);

function recieveTextFromHtml(t) {
_root.theText.text = t;
}

_root.button.onRelease = function() {
ExternalInterface.call("recieveTextFromFlash", _root.theText.text);
_root.theText.text = "";
}

Javascript:

function recieveTextFromFlash(Txt) {
document.getElementById('htmlText').value = Txt;
}

HTML: view Source of sample page

Download:

Download all source files (.fla, .html, .swf): ActionscriptJavascriptCommunication.zip

This entry was posted in tutorial and tagged , , , , , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

62 Comments

  1. i-e
    Posted February 14, 2008 at 10:58 am | Permalink

    hi,

    great sollution, but in does it also works in IE ?

  2. Posted February 15, 2008 at 5:06 pm | Permalink

    Good Question, half of this works in IE…
    You can communicate from flash to javascript just fine. But getting from the javascript to the flash is giving me trouble. I get the “Object doesn’t support this property of method” error.

    Any insight would be helpful!

  3. Guro Khundadze
    Posted February 24, 2008 at 4:50 pm | Permalink

    i have the same problem in IE :(
    “Object doesn’t support this property of method�

  4. neerJ
    Posted March 20, 2008 at 2:21 am | Permalink

    hav a flv fullscreen player,inside a html page,

    in that html page one button is there,

    that button should be invisible until

    user click & watch half of the flv movie,

    after watching that half of the movie,
    that html button should be automatically active,

    any idea how to do this type of thing

    using javascript in flash

    plz mAIL ME AT neeraj8585@gmail.com

  5. Posted March 20, 2008 at 12:01 pm | Permalink

    If I understand your question and situation correctly, You have a button in your html that you want to only be visible after a user has watched a certain amount of the movie?

    I’d put a function in your player that would check to see the amount of video the user has watched, and then, once it reached 50% (or whatever percent you need) have it call a jsfunction with ExternalInterface.call(). You’d have to have this javascript function in your html page and have it hide/show the specific button… (help with that here: Javascript Code to show a hidden element)
    Let me know if that helps!

  6. neeraJ
    Posted March 24, 2008 at 1:37 am | Permalink

    hii Evan Mullins

    thanks for ur reply,

    i am able to trace the flv cue points,but getiing confusion in calling that function,can u help me to calling that function, just tell how do i call that function from flash to hide that html button in start & when it will reach to that particular point that html button will automatically shown, it will be very helpful for me.

    ////////////////////////////////////////////////
    import flash.external.*;

    // for calling javascript external class

    // plaese writr that function here that all

    /**
    Requires:
    – FLVPlayback component on the Stage with an instance name of my_FLVPlybk
    – TextArea component on the Stage with an instance name of my_ta
    */

    import mx.video.*;
    my_FLVPlybk.contentPath = “http://www.helpexamples.com/flash/video/water.flv”;
    my_ta.visible = false;
    // create cue point object
    var cuePt:Object = new Object();//create cue point object
    cuePt.time = 1.444;
    cuePt.name = “elapsed_time”;
    cuePt.type = “actionscript”;
    my_FLVPlybk.addASCuePoint(cuePt);//add AS cue point
    // add 2nd AS cue point using time and name parameters
    my_FLVPlybk.addASCuePoint(5.3, “elapsed_time2″);
    var listenerObject:Object = new Object();
    listenerObject.cuePoint = function(eventObject:Object):Void {
    my_ta.text = “Cue at: ” + eventObject.info.time + ” occurred” ;
    my_ta.visible = true;
    };
    my_FLVPlybk.addEventListener(“cuePoint”, listenerObject);
    ///////////// script end ///////////////////////

    regards,
    Neeraj

  7. Posted March 24, 2008 at 9:48 am | Permalink

    //actionscript function this goes in your flash
    function call jsfunction() {
    ExternalInterface.call(“showButton”);
    }

    //javascript function (this needs to be on the html page.
    //you’ll need to give the button you want to show an id of myButton
    //or change this to whatever you have… and set it’s style=”display: none;”
    function showButton() {
    document.getElementById(“myButton”).style.display = “”;
    }

  8. saga
    Posted March 26, 2008 at 12:37 am | Permalink

    hi

    The sample is nice and I changed the code to work in IE also ……the code

    change the html code as follows………..

    in javascript change like this

    if (navigator.appName.indexOf(“Microsoft”) != -1)
    {
    document.getElementById(‘IEflash’).sendTextFromHtml(document.getElementById(‘htmlText’).value);
    } else
    { document.getElementById(‘flash’).sendTextFromHtml(document.getElementById(‘htmlText’).value);
    }
    document.getElementById(“htmlText”).value = “”;

    I hope this may help for some one………

  9. Posted March 31, 2008 at 11:01 am | Permalink

    Looks great! How would you go about sending data from multiple text boxes?

  10. Posted March 31, 2008 at 4:27 pm | Permalink

    With ExternalInterface.call, the first argument is the name of the js function you want to call in your HTML document, and the rest are arguments you want to pass in to it. You can send many, just separate them with a comma.
    so: ExternalInterface.call(“recieveTextFromFlash”, _root.theText.text);
    becomes: ExternalInterface.call(“recieveTextFromFlash”, _root.theText2.text, _root.theText.text, _root.theText3.text);
    Check the documentation of ExternalInterface.call from Adobe
    call (ExternalInterface.call method)
    public static call(methodName:String, [parameter1:Object]) : Object
    Parameters

    methodName:String – The name of the function to call in the container. If the function accepts parameters, they must appear following the methodName parameter.

    parameter1:Object [optional] – Any parameters to be passed to the function. You can specify zero or more parameters, separating them by commas. The parameters can be of any ActionScript data type. When the call is to a JavaScript function, the ActionScript types are automatically marshalled into JavaScript types. When the call is to some other ActiveX container, the parameters are encoded in the request message.
    Returns

    Object – The response received from the container. If the call failed (for example if there is no such function in the container, or the interface was not available, or a recursion occurred, or there was a security issue) null is returned.

  11. nmduc073
    Posted April 4, 2008 at 4:27 am | Permalink

    Hi saga,
    Please post your full html code. Where is IEflash?

  12. Michael
    Posted April 7, 2008 at 12:30 pm | Permalink

    I’ve got the html/javascript submitting multiple inputs but it’s the actionscript side that I am completely clueless about.

  13. ashok
    Posted April 24, 2008 at 3:37 am | Permalink

    hi,thanks for your hlep

  14. raghavender
    Posted April 24, 2008 at 3:39 am | Permalink

    thanks,this help me a lot

  15. Jonah
    Posted June 3, 2008 at 7:31 pm | Permalink

    Quite clear and thorough instructions. Thanks for writing this.

  16. Auz
    Posted July 30, 2008 at 6:04 am | Permalink

    Hi saga …

    Can you explain where the IEFlash object is coming from on your fix for IE …

    is the object embedded in a different way to flash ???

    Thanks …

  17. polluxx42
    Posted August 26, 2008 at 1:07 pm | Permalink

    No such luck, original example does not work in IE7.

  18. Roland
    Posted September 10, 2008 at 4:09 am | Permalink

    Can anybody help me. I need to Get value from flash to js by calling js method.

  19. oxyde
    Posted September 10, 2008 at 4:14 am | Permalink

    great stuff. I think this might be the solution I looking for.
    I have a website in flash and html. The homepage is a flash image gallery with large picture preview related to a vertical scrolling thumbnails and a small menu at the bottom.
    When you click on one of the item of the menu you are send on a html page with a css replica of the flash picture gallery.
    I would like to click on a thumb located on the html page and be send back to the homepage and have the homepage gallery remember which image i’ve just clicked and display that one in my large image box.

    how do i tell the flash xml image gallery which one was clicked on the html page?

    cheers,
    oxyde

  20. Posted September 10, 2008 at 9:25 am | Permalink

    Thanks for the comments everyone, I took a minute recently and worked with this IE issue. I tried saga’s suggestion, but it didn’t seem complete. Then I decided to update my embed codes, and I used my favorite embed option swfobject2! Doing this alone fixed the IE bug! Now we have actionscript javascript communication in any browser, IE included.
    NEW live example with swfobject2 works in IE! ActionscriptJavascriptCommunication2.html

    @Roland – to do that, if I understand your question correctly, you’d have to just expose an actionscript function to javascript with addCallback and have it return the value you need and call that from javascript like any other function. Good luck!

  21. Posted September 17, 2008 at 12:28 pm | Permalink

    Object doesn’t support this property or method.

    I am able to communicate from Flash to JavaScript, NO PROBLEM. However, the inverse is not true. From JavaScript to Flash, I get the above error. There is no explanation for this all code is correct. All are set, the tag is there also.

    Can anyone help?

  22. YVR
    Posted September 22, 2008 at 6:47 pm | Permalink

    Evan – You said you fixed the codecs for that IE problem….did oyu update the zip file with that change ?

  23. Posted September 22, 2008 at 9:55 pm | Permalink

    @YVR – I fixed the embed codes for IE so the javascript can now “find” the flash element on the page correctly. Nothing in the flash source changed- only the HTML. I didn’t include that in the zip file, but it is in the html page here ActionscriptJavascriptCommunication2.html, just view source. My apologies for the confusion

  24. YVR
    Posted September 22, 2008 at 11:08 pm | Permalink

    Wonderful…Thank you Evan for your quick reply…this helps me a lot..let me try tonight..

  25. YVR
    Posted September 23, 2008 at 12:39 am | Permalink

    Hi Evan….This works perfectly as expected…but need a help on one step further down.
    I just added another function in the javascript function which looks like this (hope this comments will allow me to paste JS syntax…)

    function recieveTextFromFlash(Txt) {
    document.getElementById(‘htmlText’).value = Txt;
    DisplaySettingsPage();
    }

    In my Javascript page..
    DisplaySettingsPage {
    ajaxpage(‘products.asp’ ,’centerarea’)
    }

    Now when I click the Flash button it perfectly display the products.asp (which just does a select recordset from a mysql table) in the correct “centerarea” div..
    Now my question is..how do I modify the code so that the resultset is not displayed in DIV but rather in a nice formated textbox in FLASH (instead of centerarea DIV) ?
    -Let me know if I have confused you.
    -V

  26. Posted September 24, 2008 at 10:57 am | Permalink

    Do you know if this also works with AC_RunActiveContent.js. I tried using swfobject and it blows my design apart.

    thanks

  27. Posted September 24, 2008 at 12:40 pm | Permalink

    @Eric – I would think so, as long as IE can still address the flash content with the getElementById(). Let us know if it does work!

    @YVR – I admit, I’m confused. Not sure what you mean. You want the function coming from flash to send text back to flash? That just seems redundant…

  28. motu
    Posted October 4, 2008 at 1:34 am | Permalink

    Hi, is there a fairly easy way to get the text sent from flash
    to simply send the text as a javascript call to the web page?

    I’m fairly green & it would help with my learning.
    Thanks
    motu

  29. Posted October 23, 2008 at 5:07 pm | Permalink

    hi
    first sorry for my bad language
    i am hamada frpm jordan i tried to write a combination with javascript and flash 8
    but it doesn’t work only if it was published to web server
    why i can’t do it at home ???
    please reply

  30. Posted November 6, 2008 at 2:14 am | Permalink

    Is it as simple to set a cue point in a video and pass a ? variable?

    I have built many flash players, but honestly I like Jeoring’s player but I would like to load different content into my side column from a database like ads that are relational to the content of the video.

    I am currently looking into AMPHP but saw this post. Very informative stuff.

    Can you shoot me an email if you respond please?

  31. Dan
    Posted May 15, 2009 at 5:57 am | Permalink

    Evan,

    Your most recent update to ActionscriptJavascriptCommunication2.html does not work in ie6. I’m still getting “null is null or not an object”. More obviously, the flash part of the page is not loading. Could you clarify this issue?

    Dan

  32. Bob
    Posted May 20, 2009 at 5:39 am | Permalink

    Hi all,
    Very helpful site – thanks for all the effort. I have found an issue with one of your links. For the new swfObject2 example you are pointing to the incorrect location. It should be ‘/wp-content/plugins/wp-swfobject/2.0/swfobject.js’ – you have missed out the ’2.0/’ from the url. This will fix the non-displaying example.

    Thanks,

    Bob

  33. Posted May 21, 2009 at 11:56 am | Permalink

    @Dan – Thanks for pointing that out
    &
    @Bob – Thanks man! I’ve added it and that fixed it! Should have looked at that earlier. Let me know if there are any other issues.

  34. Eddie
    Posted May 30, 2009 at 4:45 am | Permalink

    I can’t get externalInteface to work at all on ie if using Flash player 10 – works ok with other flash players. Anyone know a workaround or what is happening?

  35. Posted November 17, 2009 at 1:08 pm | Permalink

    I’m trying to use externalInterface to create a mouselistener so the mouse scroll will work when on top of the flash – as well as the spacebar and arrow keys working as well – any tips?

  36. Posted March 15, 2010 at 8:53 am | Permalink

    Thank, working fine but i want to this sample code :

    ExternalInterface.call(”

    function anyFunction(blah) {
    blah;
    blah;
    blah;
    return blah;
    }

    “);

    Can anyone help me?

    Thanks again!

  37. pursueg
    Posted May 20, 2010 at 11:31 am | Permalink

    Hi..

    I am trying to do a simple thing,

    ExternalInterface.call(“alert(‘Hi’)”);

    This works fine if i try to run the SWF directly in the browser but doesn’t work if i try to load the player through JavaScript.

    I am facing this problem in IE 8

    Please help.

  38. Zshandi
    Posted May 21, 2010 at 10:44 pm | Permalink

    Hey Evan, could you please explain what code the swfobject.js file contains. I’m confused about this.

  39. Zshandi
    Posted May 22, 2010 at 3:38 am | Permalink

    I downloaded the swfobject and copied the example code exactly as it was, accept for the location of swfobject.js, into the source code download html page. When I tested it, it wasn’t sending text either way for some reason. But when I view the example page that’s online here, it works perfectly. I can’t tell what I might be doing wrong. Do you know what might be going wrong?
    I’m using firefox3.6 btw.

    Thanks!

    • Posted May 24, 2010 at 11:38 am | Permalink

      I’d guess it’s something with your object id’s. That’s how the javascript knows what object to send the code to. Not much else i can say without looking at some code.

      • Zshandi
        Posted May 29, 2010 at 4:35 am | Permalink

        I figured out what was wrong. It was a problem with the security settings of flash.

  40. mine
    Posted May 24, 2010 at 9:55 am | Permalink

    I am searching for a way to interact to my database from actionscript, we are devoloping a website based on java&javascript…

    do you have any idea about this how can I read and write datas to a database via actionscript…

    can javascript do this?

  41. Zshandi
    Posted May 29, 2010 at 12:35 pm | Permalink

    For some reason, whenever I try to open ActionscriptJavascriptCommunication.fla, an alert comes up that says “Unexpected file format.” and I cant open the file.

  42. lfrdrflmngc
    Posted July 10, 2010 at 2:54 pm | Permalink

    None of the examples you’ve provided is working in IE8, it only works from AS to JS but not the other way, why? is there a fix for this?

  43. Posted July 15, 2010 at 2:47 am | Permalink

    I have some thumbnails loaded from an xml file with each one being a button to launch to corresponding shadowbox gallery. (see the portfolio section of the website) I have a var declared in my on release function which I want to use in the ExternalInterface.Call as below.

    function releaseHandler() {

    var galName = this["info"].attributes.title+’Gallery’;
    //trace (galName);

    ExternalInterface.call(galName);
    }

    The trace returns the correct values but I can’t seem to use them in the ExternalInterface.call

    Any hints?

  44. Posted August 2, 2010 at 10:44 am | Permalink

    Got it sorted. Just a syntax error.

    Should have double brackets around the var as follows:

    ExternalInterface.call((galName));

    Cheers

  45. SmaJLe
    Posted September 2, 2010 at 9:42 am | Permalink

    thank you thank you thank you ! =)

  46. Lex
    Posted September 24, 2010 at 9:34 am | Permalink

    Useful but a little out of date, none of the examples worked with IE. And you have to add the allowscriptaccess : “always” to the attributes when creating the swfobject example to work too.

    • Posted September 24, 2010 at 9:49 am | Permalink

      @Lex- of course 2.5 years is very out of date on the internet… some of the same principles apply still though. Thanks

  47. Lex
    Posted September 24, 2010 at 9:57 am | Permalink

    Actually, your example works just fine on IE, but when I tried to implement it it didn’t work out.

    To make it run on all browsers I had to add the

    allowscriptaccess : “always”

    as a param like this instead of attribute:

    var params = {
    allowScriptAccess: ‘always’
    };

  48. julien
    Posted October 7, 2010 at 10:48 am | Permalink

    haha … loved the comment
    “hi,
    great sollution, but in does it also works in IE ?”

    … probably not :) but it’s IE

    • Jim
      Posted November 12, 2010 at 1:05 am | Permalink

      I am trying to have a flash control the display of a JavaScript button.

      Here is my Actionscript 2.0 code that controls the button display.
      import flash.external.*;

      var method:Function = showButton;

      _root.button.onRelease = function() {
      ExternalInterface.call(“showButton”);

      }

      Here is my JavaScript function that changes the button from hidden to visible.

      function showButton(){
      document.getElementById(‘play’).style.visibility= “visible”;
      }

      This works in IE 7, but not the latest Firefox. Any help would be appreciated.

      Thanks!

  49. Posted January 31, 2011 at 4:10 am | Permalink

    hi Evan,

    Thanks for the great tutorial

    cheer

  50. Onix
    Posted February 15, 2011 at 8:01 pm | Permalink

    I wanted to modify it – send text from javascript width mousover not with button! So everything worked on Chrome, but when i tried on FF it wont!

    all in span

    onmouseover=”getElementById(‘flash’).sendTextFromHtml(htmlText.value); document.getElementById(‘htmlText’).value = ””>MOVE MOUSE OVER HERE

    i looked everywhere what can be the problem, but no answers… Please help!

    • Posted February 15, 2011 at 8:13 pm | Permalink

      Hey Onix,

      I would suggest separating the code into a standalone javascript function. Sometimes putting all that on a js behavior I’ve noticed ff get finicky. Do you have it online anywhere we can see it?

      best

  51. Posted March 9, 2011 at 11:23 pm | Permalink

    Hi,
    very interesting tutorial.
    But how you can pass more than 1 parameter to function ExternalInterface.call?
    ( same question about function called from ExternalInterface.addCallback)

    • Posted March 10, 2011 at 6:19 pm | Permalink

      @steph le plombier

      To get more than one parameter is not technically possible. But I’ve found that you can concatenate 2 params and then on the other side split the string and you’ve got your two values. Does that make sense?

      • Ian Miller
        Posted March 17, 2011 at 5:01 am | Permalink

        You can just pass an object with all of your variables in it and you won’t need to concatenate any values.

        ps thanks for the turorial

  52. avinash
    Posted January 10, 2012 at 6:49 am | Permalink

    Hi Evan,

    I am using the same code and trying it on chrome/firefox it is not working on neither of the browsers, can you explain why it doesn’t work on this.

    Also I am trying to call a method defined in actionscript from javascript but gives an error in the browser saying “method not defined” and also am not able to call method defined in javascript from actionscript.

One Trackback

  1. [...] written about this before. It got old though and I had reports that it was having issues in certain browsers, so I had a minute to look [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Recent Posts

    Developing for old browsers is (almost) a thing of the past – (37signals)

    Basecamp announces that it’s new version will not support old browsers! They will of course continue to support them in their “classic” version. But this is good news and as more implement this type of policy the internet will be happy. It used to be one of the biggest pains of web development. Juggling different [...]

    Screen shot 2012-02-10 at 12.59.33 PM

    Vendor Prefixes – about to go south

    What are “standards” coming to? Who’s guilty? Apple and Chrome: They’re supporting vendor prefixed properties like they’re a standard part of development. Firefox, Opera and Internet Explorer: They should have been on the ball more. Need to push their evangelism further. Teach developers that it’s not exclusively -webkit to style elements. All the browsers: experimental [...]

    bio

    An Event Apart Notes: Ethan Marcotte, Responsive Web Design

    Ethan Marcotte has become the father of Responsive Web Design and spent this whole day focused on principles, techniques, gotchas, examples, … all about building and how to build responsive sites. With a sprinkle of mobile first. For Ethan, it all started with this article: http://www.alistapart.com/articles/dao/ Think of architecture, the whole design phase is established [...]

    Webcomm_Montreal

    An Event Apart Notes: Jared Spool, The Curious Properties of Intuitive Web Pages

    Senseless waste of asterisks… Avis used an asterisk to denote optional fields. This means that there is a lot of baggage that comes with an asterixk. Somewhere this symbol got meaning, it’s not in the bible! We can control when something goes from unintuitive to intuitive. A design is intuitive (although technically and grammatically speaking [...]

    untitled-158-2

    An Event Apart Notes: Marco Arment, Bridging the App Gap

    The iPhone changed our industry in 2007: first mobile to have a desktop class web browser and it made people start using their mobile phones as computers! All apps other than apple provided ones were web browser apps. Most of the first apps were branded web browsers. No real difference between using mobile site or [...]

    lukew_space

    An Event Apart Notes: Luke Wroblewski, Mobile to the Future

    MASS MEDIA (in waves) Print, Recordings, Cinema, Radio, Television, Internet, Mobile Mobile is the new Mass Media It certainly is mass and massive. More mobile devices (by far) every day than babies born on the planet. Mobile devices are eating into our personal computing shares. New waves of mobile media eat all previous media waves. [...]

    IMG_4500

    An Event Apart Notes: Josh Clark, Buttons are a Hack

    Mobile and touch should be revolutionizing design and user experience. We don’t want to touch a tiny link or button. Back button is just stupid. Fitz’s Law, make things fat proximal targets for easy touching. People are lazy, let’s as designers LET people be lazy! Maybe even use the whole screen as your control. Eliminate [...]

    nicole_pink_bkg_2012

    An Event Apart Notes: Nicole Sullivan, Our Best Practices are Killing Us

    Grep to for analyze css. CSS duplication is a web-wide problem. Started helping facebook optimize thier site and they had 1.9MB of css loading. The same color showing up hundreds of times. Many many color statements and declarations. !important declarations get dangerous. Sites found to have over 500 !important declarations! float is a serious problem [...]

    ericmeyer

    An Event Apart Notes: Eric Meyer, The Future of CSS

    Cormorant trained to fish for the fishermen. The fishermen tie bands around the birds necks that are. Fishermen fish at night, using lamps they attract bugs, which attract fish, and the cormorant get to fish but cant swallow them and the fishermen take the fish. Browser vendors are promising us new CSS tools, but don’t [...]

    sammyj

    An Event Apart Notes: Ethan Marcotte, Rolling Up Our Responsive Sleeves

    Henry Adams (Descendant of 2 presidents: great-grandson to John Adams and grandson to John Quincy Adams). He lived between the civil war and world war 1. He witnessed the industrial revolution. Chaos was the law of nature, Order was the dream of man Samuel Johnson – funniest man in the 17th Century… Responsive Design: 1. [...]

  • Recent Comments

    me-gamer

    me-gamer

    this is really nice. this made many of my task simple.
    Lori Newman

    Lori Newman

    Just wanted to thank you for your presentation. It was extremely informative and just what I...
    Karl

    Karl

    I have been using for some time this nice Banner, from developer FX. They have a really nice Live...
    Karl

    Karl

    Thank you for this wonderful link… recommend it! Fast, simple, easy… :-)
    Gabriel

    Gabriel

    Hi Valerie, I don’t know if you are still following this post, but I tried seeing if it is...
    avinash

    avinash

    Hi Evan, I am using the same code and trying it on chrome/firefox it is not working on neither...