Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Flash, Flex, ActionScript > flash из php


Автор: kaiser Zaido 31.01.05, 16:15
Вчера столкнулся с этой темой, показалась очень интересной :)
Проблема состояла в том что было неоткуда взять скомпилированную dll, благо нашел, но уже не помню где :(
Откоментировал расширение и появилось
Цитата

ming
Ming SWF output library enabled
Version 0.3beta1

в phpinfo()
все казалось бы чудестно, но начал выполнять сценарии и меня постигла неудача :(, в самом финале когда я выполняю
Цитата

header("Content-type: application/x-shockwave-flash");
$m->output();


то ничего не происходит, а точнее происходит но не то что должно :) Апач просто начинает потреблять оперативную память и раздуваеться как пузырь, приходиться его кикать...
а если я применяю
Цитата
$movie->save("sketchpad.swf");

то все в порядке, получаю флешку :)
Я думаю проблема в библиотеке, поэтому прошу скажите где скачать php_ming.dll, такую чтобы у вас работала :) Думаю и у меня тогда заработает :))
Еще к слову - у меня стоит Денвер - может это он плохо работает?? Хотя маловероятно я думаю...

Автор: SiMM 31.01.05, 18:36
Цитата kaiser Zaido @
скажите где скачать php_ming.dll, такую чтобы у вас работала ... у меня стоит Денвер
Потому что дистрибутив PHP лежит на http://php.net а не где-то там на левых сайтах.

Автор: Trustmaster 31.01.05, 18:40
Какая версия PHP?

Автор: kaiser Zaido 31.01.05, 20:40
2SiMM
потому что там не dll, а исходники...
я к сожалению не сталкивался с компиляцией дллок и поэтому не знаю сработает ли у меня

2Trustmaster
PHP Version 4.3.6

Автор: SiMM 31.01.05, 20:45
Цитата kaiser Zaido @
потому что там не dll, а исходники...
Где? Может не стоит маяться фигнёй и скачать наконец свежий скомпиленный бинарник, включающий все модули, с ОФИЦИАЛЬНОГО сайта?

Автор: kaiser Zaido 31.01.05, 21:00
и там это расширение есть??

Автор: SiMM 31.01.05, 21:20
Цитата kaiser Zaido @
и там это расширение есть??
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    dir c:\usr\php\extensions\php_ming.dll
    21.09.2004  14:08           188 416 php_ming.dll

Автор: kaiser Zaido 31.01.05, 21:38
а ты не можешь эту библиотеку отдельно выложить в инете? или приаттачить к сюда??
или выслать мне на мыло?? ka-zaido@yandex.ru

спасибо...

Автор: SiMM 31.01.05, 21:46
Цитата kaiser Zaido @
ты не можешь эту библиотеку отдельно выложить в инете?
Интересно, с чего ты решил, что тебе подойдёт dll-ка от версии 4.3.9?
http://webfile.ru/174652

Добавлено
Цитата kaiser Zaido @
Я думаю проблема в библиотеке, поэтому прошу скажите где скачать php_ming.dll, такую чтобы у вас работала
Кстати, лучше бы ты код какой (который у тебя не работал должным образом) для теста привёл, поскольку я этот модуль никогда даже не пробовал.

Автор: kaiser Zaido 31.01.05, 22:02
ну я брал примеры, которые работают :)
вот с сохранением они работают, а с выводом на экран нет :(

ну вот например такой код:
Цитата

<?
//dl("php_ming.dll");
// movie properties
ming_setScale(20.00000000);
ming_useswfversion(6);
$movie = new SWFMovie();
$movie->setDimension(600,400);
$movie->setBackground(0xcc, 0xcc, 0xcc );
$movie->setRate(31);

$strAction = "
// make an object and attach actions
sketchpad = {
onMouseDown: function () {
draw=true;
moveTo(_xmouse, _ymouse);
},
onMouseUp: function () {
draw=false;
},
onMouseMove: function () {
if (draw) {
lineStyle(9, 255, 100);
lineTo(_xmouse, _ymouse);
}
},
onKeyDown: function () {
clear();
}
};
// add listeners to object
Mouse.addListener(sketchpad);
Key.addListener(sketchpad);
";

$movie->add(new SWFAction(str_replace("\r", "", $strAction)));
$movie->add(new SWFAction( $strAction));
//$movie->save("sketchpad.swf");
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>


если откомментировать, а то закоментировать то получиться флешка что можно рисовать на экране :)

Добавлено
твоя версия
Цитата

Ming SWF output library enabled
Version 0.2a


поэтому(наверное поэтому), выдаются ошибки типа
Цитата
Fatal error: ming_useswfversion(): Only SWF versions 4 and 5 are currently supported! in z:\home\zaido1.net\www\hz.php on line 3


а там везде стоит цифра 6... так что примеры не идут :(

Автор: SiMM 01.02.05, 05:58
Цитата kaiser Zaido @
Fatal error: ming_useswfversion(): Only SWF versions 4 and 5 are currently supported! in z:\home\zaido1.net\www\hz.php on line 3
Manual: ming - там даже полноценная поддержка 4ки не обещается.
Цитата kaiser Zaido @
а там везде стоит цифра 6...
Ну так исправь хотя бы на 5.
Цитата kaiser Zaido @
если откомментировать, а то закоментировать то получиться флешка что можно рисовать на экране
У меня ничего не получилось. После того как удалил $movie->add(new SWFAction( $strAction)); (зачем он там дважды?) и поправил версию с 6 на 5.
Цитата kaiser Zaido @
вот с сохранением они работают, а с выводом на экран нет
Работает одинаково (одинаково не работает). Выходные файлы правда отличаются одним байтом (4й байт в "сохраняемом" файле 0x8C, в "выводимом" - 0x8E, ну и кроме того, "выводимый" длиннее на два байта). И вообще, фраза "не работает" - это не описание проблемы.

Автор: SiMM 01.02.05, 07:18
А вообще - какая необходимость делать SWF на PHP, когда можно обходиться и без этого?

Автор: kaiser Zaido 01.02.05, 14:21
неработает это означает что не выводиться флешка на страничку, я кажеться подробно описал в первом посте...
а зачем нужно - просто интересно :) есть же такая возможность :))

Добавлено
вот еще скриптец
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    <?
    Ming_setScale(20.00000000);
    ming_useswfversion(5);
    $movie=new SWFMovie();
    $movie->setDimension(550,400);
    $movie->setBackground(0xcc,0xcc,0xcc);
    $movie->setRate(12);
     
    for($i=10;$i<300;$i+=10){
      $s = new SWFShape();
      $s->setLine(4, 0, 0, 0);
      $s->setRightFill(255,0,0);
      $s->movePenTo(10, 10);
      $s->drawLineTo(310, 10);
      $s->drawLineTo(310, 230);
      $s->drawCurveTo(10, $i, 10, 10);
      $movie->add($s);
      $movie->nextFrame();
      }
     
    //$movie->save("drawcurveto.swf");
    header("Content-type: application/x-shockwave-flash");
    $m->output();
    ?>


когда ставлю на сохранение то рисует какой-то треугольник беременный, а если прошу отдать его через браузер, то получаю только окошко флеша, т.е. поверхность, а треугольник не показывает :(

Автор: SiMM 01.02.05, 14:37
Цитата kaiser Zaido @
неработает это означает что не выводиться флешка на страничку
Это ничего не значит и так же неинформативно.
Цитата kaiser Zaido @
вот еще скриптец
Вообще твои примеры меня поражают - то ли ты не умеешь делать Cut&Paste, то ли специально даёшь нерабочие скрипты. Тем не менее, твой последний пример после доработки напильником ($m->output(); => $movie->output(); ) работает абсолютно одинаково.

Автор: kaiser Zaido 01.02.05, 14:49
слажал, согласен :)) извените...
у меня заработал он...
спасибо за консультацию :)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)