Ming - an SWF output library and PHP module


7/23/00
new release 0.0.2c
Many fixes (and probably lots of breaks, too) to the compiler, an swf->php utility added. It's not perfect, but it might help you see how php/ming works, 'specially the action script stuff.

download 0.0.2c


7/20/00
Uh, just figured out why I wasn't getting any more subscriptions to the announce & user lists. Here's the linkage again:

ming-announce - announcements only, average one message a week.

ming-fun - fun with Ming! Tell us what you're doing with Ming! Ask questions about Ming! TALK ABOUT MING, damnit! average zero messages a week.


7/11/00
Together, at last- Ming and Python!

Okay, I'll admit it, I know absolutely nothing about python. But that won't stop me from heaping enormous praise upon these fine folks who made a set of python wrappers for ming:

http://www.elecomsolutions.com/noze/software/pming/

Anything that makes these infernal micro-computing machines more useful to us, the superior humans, is a very good thing.


7/10/00
New stuff! Less bugs! More bugs!

Avoiding the obvious Shakespearean quandary over what version number to give this, here's what's new:

  • SWFTextField is.. a text field!

  • Browser-defined fonts. Super handy for text fields (see above).

  • Very cool action decompiler in the listswf util turns action bytecode into that c-like action script stuff I love so much (when it works).

  • Type 2 buttons rendered. This means you can do fancier action stuff. Check the examples for.. an example.

  • Some really stupid compiler stuff fixed, like simple increments actually work now. And setTarget, too.

    download version 0.0.2b

    PHP documentation
    Examples

    Getting an error when you compile? Something about yyparse call not matching function prototype? See below.


    7/1/00
    Actions! Buttons! Sprites! Morphs! New in version 0.0.2a!

    Actions are made from c-like script code with a swank little compiler- much, much faster than clicking through half a dozen menus and dialogs for every command you want. And there's plenty of exciting bugs to discover!

    Buttons are.. you know what buttons are: roll over 'em, click 'em. Now that's entertainment!

    Sprites (aka movie clips) are little movies inside your movie! Whoa!

    Morphs are those fancy twisting squiggles that are used in all the wrong places and make your computer crawl!

    download version 0.0.2a

    (note: ming-0.0.2a requires php-4.0.1. If you really want to compile with 4.0.0, look in the ming.c file in the php_ext directory- see down there at the bottom, that bit of code that's commented out? Uncomment it, and comment the bit below it. Very good.)


  • download latest version
    php documentation
    examples


    Ming README:

    
    MING THE MODULE
    
    It's an SWF output library.  And it's a PHP module.
    
    It lets you create: shapes (including morphs), text, sprites (aka movie
    clips), buttons, and actions in flash movies.  There's also a bit of mp3
    streaming just for fun..
    
    The library code comes in two parts: a set of functions only concerned
    with writing a valid swf file, and a separate body of code to abstract out
    the details of the SWF format.  The idea is that one shouldn't need to
    know anything about the SWF specification to make it work.
    
    The PHP module wraps Ming objects in PHP objects.  Pretty cool..
    
    Ming is released under the LGPL.  See file LICENSE for the gory details.
    
    -dave@opaque.net
    
    
    BUILDING and INSTALLING:
    
    no fancy autoconf nonsense here, just raw old-fashioned Makefiles.
    
      unpack the tarfile (which you've obviously already done)
      make
    
      mkdir <phpdir>/ext/ming
      cp php_ext/* <phpdir>/ext/ming
      cd <phpdir>
      ./buildconf
      ./configure --with-ming=<mingdir> <other config options>
      build and install php as usual,
      restart web server if necessary
    
    
    USING MING:
    
      Copy the examples from the examples directory to your web doc space.
      Look at them with your web browser.
      Make your own, better, examples and send them to me.
    
    
    Ming appears to work fine on RH6.1 with PHP-4.0.0.  YMMV, caveat emptor,
    carpe diem, et cetera.
    
    
    F(un)AQ:
    
    Q: Is Ming related to the Macromedia(r) Flash(tm) file format (SWF) SDK?
    A: Nope.  I didn't really feel like being bound to the terms of their license,
       whatever those are (couldn't make much sense of the legalese, really), so
       this has been written from scratch using open documentation.
    
    Q: Aren't Ming and Flash enemies?
    A: Maybe, I dunno.  I liked the name.  Maybe there's a homoerotic subtext
       there.  (Actually, all I remember from the movie was somebody putting
       their hand in a rock and green blood.  And that awful, awful song.)  If
       that bothers you, just think of vases and ancient China.
    
    Q: Where do I get FDB files?
    A: You make 'em.  They're just a crutch until Ming can read real font
       formats like truetype and postscript.  Read the docs.
    
    Q: Does Ming have anything at all to do with MNG (Motion Network Graphics,
       or something like that..)?
    A: Look, we're sorry, okay?  We just didn't realize..  Sure, it should 
       have been obvious, we know, but we weren't thinking.  It was an 
       innocent mistake, and we deeply regret any confusion or inconvenience
       we've caused.  It won't happen again, we swear.
    
    Q: Hey, hey, chin up- it's no big deal, really!
    A: Aw, shucks, you mean it?
    
    Q: Sure!
    A: Heh.  Sucker.
    
    Q: I get this error when I'm compiling:
    
       In function `yyparse':
       bison.simple: number of arguments doesn't match prototype
    
    A: You're using an older version of bison with a little bug in it.  Either
       upgrade to a newer version, or just change the following in your
       bison.simple file (probably in /usr/lib or /usr/share):
    
         /* Prevent warning if -Wstrict-prototypes.  */
         #ifdef __GNUC__
         int yyparse (void);
         #endif
    
       should be replaced with:
    
         /* Prevent warning if -Wstrict-prototypes.  */
         #ifdef __GNUC__
         #ifdef YYPARSE_PARAM
         int yyparse (void *);
         #else
         int yyparse (void);
         #endif
         #endif
    
    Q: Is that safe?
    A: Yeah, sure, whatever.
    
    
    Macromedia(r) and Flash(tm) are trademarks or registered trademarks of Macromedia, Inc. in the United States and/or other countries.

    Macromedia(r) does not sponsor, affiliate, or endorse this product and/or services. Nor does China.

    All content Copyright (C) 2000 Opaque Industries except where noted otherwise.