最速怪談選手権

Perl Tkでタイマーイベントは発生できるのでしょうか?

1秒毎に、例えばa.gifという画像をCanvas上で上から下に落ちていく(前の画像は残さない)スクリプトを書きたいのですが、可能でしょうか?

A 回答 (1件)

# strict を使ってなくて雑ですが・・こんなんどうでしょう。


# after というのでインターバルを設定できるようです(下から5行目)。
# あとは、表示するのを oval から画像に変えればいいと思います。

use Tk;

$top = MainWindow->new();
$canvas = $top->Canvas( width => 300, height => 300 );
$canvas->pack();

$oval = $canvas->create( 'oval', 10, 10, 50, 50 );
$canvas->itemconfigure( $oval, -fill => 'blue', -outline => 'blue' );

$btn = $top->Button( -text => 'Start', -width=>10, -command => \&start_move );
$btn ->pack();

$self->{'MainWindow'} = $top;
$self->{'Canvas'} = $canvas;

MainLoop();

sub start_move{
for($i=0;$i<5;$i++){
$canvas->after('200');
$canvas->move($oval,10,10);
$self->{'MainWindow'}->update();
}
}

参考URL:http://www.ie.u-ryukyu.ac.jp/~kono/lecture/softw …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!