FlashLite1.1なのでバージョンは4です。
ming_useswfversion(4);
以下のようにフレーム毎に0~9まで連続で表示した際に、
各フレームでstop()をかけてキーを押したら次のフレームに進むようにしたいと思います。
キーを押したらgotoFrame();などで次のフレームへと思ったのですが、
そのやり方がわかりません。
SWFDisplayItem->addActionで第二引数にSWFACTION_KEYDOWNを使うなどと試したのですが、
動作しないようです。
<?
ming_useswfversion(4);
$swf = new SWFMovie();
for($i=0;$i<10;$i++){
$textField = new SWFTextField(SWFTEXTFIELD_NOEDIT|SWFTEXTFIELD_WORDWRAP );
$textField->setFont(new SWFFont(""));
$textField->addString($i);
$obj = $swf->add($textField);
$obj->moveTo(0,10*$i);
//各フレームで停止する
$stopScript = "stop();";
$stopAction = new SWFAction($stopScript);
$swf->add($stopAction);
$swf->nextFrame();
}
$swf->save("test.swf");
ずばりな回答が出た場合には一番早い人に300ptお支払いします。
以下のようなボタンを作って配置すると、キーに反応してくれました。
<? ming_useswfversion(4); $swf = new SWFMovie(); $button = new SWFButton(); $button->addAction(new SWFAction('nextFrame();'), ming_keypress('0')); $swf->add($button);
「ming_keypress('0')
」の「0」は、押して欲しいキーの文字にして下さい。
どんなキーでも反応させる方法は分かりませんでした。
回答にあたって、以下の過去質問を参考にしました。