|
|
LIX. Ming pour FlashAvertissement | Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concr�tement, TOUT ce qui est document� ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utiliser ce module � vos risques et p�rils. |
Ming est une librairie open-source (LGPL) qui vous permet de
cr�er des animations au format Flash. Ming supporte toutes les
fonctionnalit�s de Flash 4 : les formes (shapes), les gradients,
les images bitmaps (JPEG et PNG), les morphing (transformations
d'une forme en une autre), les textes, actions, sprites (mini animations),
le streaming MP3 et les transformations de couleurs. Le seul ajout futur
est celui des �v�nements sons.
Ming n'est pas un acronyme.
Notez que toutes les distances sp�cifi�es (longueurs, distances,
tailles...) sont en "twips", c'est-�-dire 20 unit�s par pixels.
C'est plus ou moins arbitraire, car le lecteur Flash fait une
mise � l'�chelle avec les valeurs qui lui sont fournis dans la
balise embed, ou la frame courante si la balise embed n'est pas
utilis�e.
Ming propose de nombreux avantages par rapport � l'extension swf.
Vous pouvez utiliser Ming sur tous les OS o� vous pouvez compiler
le code, tandis que swf est limit� � Windows. Ming vous �vite
la d�concertante complexit� du format SWF, en transformant les
�l�ments des animations en objets PHP. Enfin, Ming est toujours
en cours de d�veloppement et surveill� par son auteur : si vous
souhaitez une nouvelle fonctionnalit�, dites le lui :
.
Ming et tous les objets cit�s ont �t� ajout� en PHP 4.0.5.
Pour utiliser Ming avec PHP, vous devez d'abord installer la
librairy Ming. Le code source et les instructions d'installation
sont disponible sur la page d'accueil de Ming :
, avec des exemples
un tutorial et l'actualit� Ming.
T�l�chargez l'archive Ming. D�compressez la et allez dans
le dossier Ming. Faites "make", puis "make install".
Cela va compiler le fichier libming.so et
l'installer dans /usr/lib/, et copier
ming.h into /usr/include/.
Editez la ligne PREFIX= dans le fichier
Makefile pour indiquer votre dossier
d'installation.
mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>
Compilez et installez PHP comme d'habitude.
Red�marrez votre serveur web si n�cessaire.
t�l�chargez php_ming.so.gz.
D�compressez le et copiez le dans votre dossier de modules
PHP (vous pouvez trouver votre dossier de module PHP
en utilisant la commande php-config --extension-dir).
Ensuite, ajoutez la ligne extension=php_ming.so
dans votre fichier php.ini, ou bien ajoutez
dl('php_ming.so'); en haut de tous vos scripts
Ming.
Ming introduit 13 objet en PHP. Pour les utilisez, vous devez �tre
familier avec les objets.
User Contributed Notes Ming pour Flash |
|
[email protected]
04-Aug-2001 12:17 |
|
// Simple button with link
<?php
Ming_setScale(1.0);
function makeRect($r, $g, $b){
$s =
new SWFShape();
$s->setRightFill($s->addFill($r, $g,
$b));
$s->movePenTo(-100,-20);
$s->drawLineTo(100,-20);
$s->drawLineTo(100,20);
$s->drawLineTo(-100,20);
$s->drawLineTo(-100,-20);
return $s;
}
// Set Font
$font = new
SWFFont("test.fdb");
$text1 = new SWFText();
$text1->setFont($font);
$text1->moveTo(155, 410);
$text1->setColor(0x00, 0x00, 0x00);
$text1->setHeight(28);
$text1->addString("php.net");
$b1 = new
SWFButton();
$b1->setUp(makeRect(0xff, 0, 0));
$b1->setOver(makeRect(0xcc, 0, 0));
$b1->setDown(makeRect(0,
0, 0xaa));
$b1->setHit(makeRect(0, 0, 0));
$b1->addAction(new SWFAction("getURL('
'phpsite');"),
SWFBUTTON_MOUSEUP);
$m
= new SWFMovie();
$m->setDimension(1000,1000);
$m->setBackground(0xcc, 0xcc, 0xcc);
$i =
$m->add($b1);
$m->add($text1);
$i->setName("phpsite");
$i->moveTo(200,400);
header("Content-type:
application/x-shockwave-flash");
$m->output();
?>
|
|
[email protected]
20-Aug-2001 06:50 |
|
//In quicktime, movies may be exported as jpeg or png
//This object
will convert any movie that has been saved as a group of images
into
//an swf file. The frame rate and other attributes can be
controlled
$path = "my_movie_dir"; //relative path to
the jpg/png or bmp files
$frame_rate=30; //frame rate of the flash
movie
$quality=50; //image quality during conversion (only valid if
not jpeg)
$skip_rate=5; //how many frames to
skip
set_time_limit("600"); //this could take some
time
$converter=new
images_to_swf($path,$frame_rate,$skip_rate);
//$converter->convert_images(70);
//Use this if using non jpeg files or decreasing the
quality
$converter->make_movie();//Make the
movie
//Do two things with
it
$converter->save_movie("my_movie_dir/my_movie.swf");
$converter->output_movie();
class images_to_swf
{
var $path; //path to the image files
var
$skip_rate;
var $movie;
var $images=array();
function
images_to_swf($path,$frame_rate=30,$skip_rate=5)
{
$this->path=$path;
$this->skip_rate=$skip_rate;
$this->movie=new
swfmovie ();
$this->movie->setrate
($frame_rate);
}
function
convert_images($quality=80,$delete_old_files=1) {
$main =
opendir($this->path);
rewinddir($main);
//first convert to
jpeg (if we have to)
//also change the quality
while($filename
= readdir($main)) {
//only use valid file types
if
(ereg("(png|bmp|jpg|jpeg)\$",$filename))
{
$file_path=$this->path."/".$filename;
if
(ereg("png\$",$filename)) $temp_img=imagecreatefrompng
($file_path);
else if (ereg("bmp\$",$filename))
$temp_img=imagecreatefrompng ($file_path);
else if
(ereg("(jpg|jpeg)\$",$filename)) $temp_img=imagecreatefromjpeg
($file_path);
if
(ereg("(png|bmp)\$",$filename)) {
if
($delete_old_files)
unlink($file_path);
$new_file_path=$file_path.".jpg";
}
else
$new_file_path=$file_path;
ImageJPEG($temp_img,$new_file_path,$quality);
//echo
"Converted $filename to $new_file_path at quality $quality<br
/>";
}
}
}
function make_movie()
{
$main =
opendir($this->path);
rewinddir($main);
//Get all valid
jpegs
while($filename = readdir($main)) {
if
(ereg("(jpg|jpeg)\$",$filename))
{
$file_path=$this->path."/".$filename;
$valid_paths[]=$file_path;
}
}
//Put
jpegs in order
sort($valid_paths);
//then create the
movie
for ($a=0; $a<count($valid_paths);
$a=$a+$this->skip_rate) {
$fp =
fopen($valid_paths[$a],"rb");
$this->images[$a] =
fread($fp,999999);
fclose($fp);
$this->movie->add(new
swfbitmap($this->images[$a]));
$this->movie->nextframe();
//echo
"Added ".$valid_paths[$a]." to the movie<br
/>\n";
}
}
function save_movie($file_name)
{
$this->movie->save($file_name);
}
function
output_movie() {
header('Content-type:
application/x-shockwave-flash');
$this->movie->output();
}
}
|
|
|
ceoATl-i-eDOTcom
20-Apr-2002 09:15 |
|
Like, the build instructions are for building from CVS, I
think...
Mere mortals can just do: cd ming-x.y.z (xyz is
version) make static make install ldconfig (you might need do
use "whereis ldconfig" to find it, and then use the full
path) cd ../php-x.y.z ./configure --with-ming ...
And don't
be copying the "new" ming code into your PHP dir like the ming
instructions say to do. That will just mess you up.
|
|
|
| |