User since
2003-09-26
147
Artikel
BenutzerIn
Hi Leute,
wie kann man einfache Animationen (move) mit Canvas
implementieren?
Hier mal mein Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use Tk;
use strict;
use warnings;
sub new {
my $class = shift();
my $parent = shift();
my $self = {parent => $parent,
canvas => $parent->Canvas};
return bless($self, $class);
}
sub AddNote {
my $self = shift();
$self->{note} = $self->{canvas}->create('rectangle',10, 10, 100, 100);
}
sub move {
my $self = shift();
for (my $i = 0; $i < 10; $i++) {
for (my $j = 0; $j < 2; $j++) {
$self->{canvas}->move($self->{note}, $i, $j);
}
}
}
sub start {
my $self = shift();
$self->{canvas}->pack(-expand => 1, -fill => 'both');
$self->move();
}
1;
User since
2003-08-04
5246
Artikel
ModeratorIn
da gibt es die methode move, z.B.
$canvas->move('tag', umX, umY);
Den Tag bekommst du als Rueckgabewert, wenn du was neues auf dem Canvas erzeugst...
User since
2003-09-26
147
Artikel
BenutzerIn
Hi Strat,
Der move Befehl ist nicht das Problem, wie kann ich die Zeit zwischen
den einzelnen move Befehlen einstellen?
In TclTk gibt es da ein after aber in perl habe ich da noch nichts gefunden.
Gruss,
Frodus\n\n
<!--EDIT|frodus|1093848895-->
User since
2003-08-04
14371
Artikel
ModeratorIn
es gibt unter Perl/tk auch after: perldoc Tk::after
User since
2003-08-04
5873
Artikel
ModeratorIn
move nimmt nicht nur Tags, auch Id's. Je nach Situation kann es sinnvoller sein, das eine oder das andere zu verwenden.
Tk::after gibts natürlich (wie schon gesagt wurde) auch bei Perl/Tk.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-09-26
147
Artikel
BenutzerIn
Danke dass hatte ich gar nicht gesehen, werde ich gleich mal ausprobieren!
Gruss,
Frodus