voici le problème:

Sous ActionScript on utilise généralement des fonctions anonymes pour gérer les évènements:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
{
  Movie.onPress = function() {
  }
}
Sous FlashPascal j'ai voulu m'inspirer de Delphi et je n'ai pas autorisé les méthodes anonymes que je n'aime pas personnellement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
type
  MovieClip = class ...
    property onPress: procedure of object;
  end;
 
begin
  Movie.onPress := doPress;
end;
 
procedure MyMovie.doPress;
begin
end;
par contre cette syntaxe gagnerait à avoir un paramètre Sender à la Delphi

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
type
  MovieClip = class ...
    property onPress: procedure(Sender: TObject) of object;
  end;
 
begin
  Button1.onPress := doPress;
  Button2.onPress := doPress;
end;
 
procedure MyMovie.doPress(Sender: TObject);
begin
  if Sender = Button1 then...
end;
L'équivalent ActionScript serait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
{
  var self = this; // nécessaire pour référencer this dans la méthode anonyme
  Button1.onPress = function() {
    self.doPress(Button1);
  }
  Button2.onPress = function() {
    self.doPress(Button2);
  }
}
 
class Movie ...
  function doPress(Sender: Object) {
  }
}
L'autre solution serait d'autoriser les fonctions anonymes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  Button1.onPress = procedure begin
    ...
  end;
  Button2.onPress = procedure begin
    ...
  end;
Qu'en pensez-vous ?

non c'est bien comme c'est
il faut ajouter un Sender
il faut autoriser les fonctions anonymes
hein ?!