| 12
 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
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 
 |  
program getpixel;
 
uses Flash8;
 
 {$FRAME_WIDTH 510}
 {$FRAME_HEIGHT 350}
 {$JPEG  nom 'voeux2012.jpg'}
 
 const frame_width=510;
       frame_height=350;
type
  image = class(Movieclip)
    mybmp : BitmapData;
    Field:TextField;
    Font:TextFormat;
    constructor Create;
// au lieu d'affecter la propriété onMouseMove on défini directement la méthode 
    Procedure onMouseMove;
  end;
 
 
Function GetBvalue(coul:integer):integer;
begin
 result :=coul Mod 256;
end;
 
Function GetGvalue(coul:integer):integer;
begin
 result :=floor((Coul Mod 65536)/256);
end;
 
Function GetRvalue(coul:integer):integer;
begin
 result :=Floor(Coul/65536);
end;
 
constructor Image.Create;
begin
 inherited Create(nil,'mymovieclip',1);
// loadBitmap crée l'image, pas la peine de le faire
// mybmp := BitmapData.Create(frame_width,frame_height);
 mybmp := loadBitmap('nom');
 attachBitmap(mybmp,1,'',false);
 Font:=TextFormat.Create( 'Arial',16,$000000,True,False,False,'center');
 //onmousemove:=domousemove;
// autant le créer une fois pour toute
 field:=TextField.Create(self,'codeRGB',2,0,0,200,40);
 field.setNewTextFormat(Font);
end;
 
Procedure Image.onMouseMove;
var R,V,B:integer;
    rgb:number;
begin
// pourquoi tout effacer et tout redessiner ?!
 //clear;
 //Field.text:='';
 //mybmp.draw(self);
 rgb:=mybmp.GetPixel(_xmouse,_ymouse);
 R:=GetRValue(floor(rgb));
 V:=GetGValue(floor(rgb));
 B:=GetBValue(floor(rgb));
 
// il a été créé une fois pour toute, pas la peine de recommencer à chaque fois
 //field:=TextField.Create(self,'codeRGB',2,_xmouse-60,_ymouse-40,200,40);
 
 // attention, il faut modifier Flash8.pas, _x et _y sont des Number et non des Integer
// ou utiliser Round()
 field._x := Round(_xmouse - 60);
 field._y := Round(_ymouse - 60);
 with field do
 begin
  { ne fonctionne pas ! même bug que pour l'horloge avec Self dans With
  _x := self._xmouse - 60;
  _y := self._ymouse - 40;
  }
  //setNewTextFormat(Font);
  text:='( '+inttostr(R)+' , '+inttostr(V)+' , '+inttostr(B)+' )';
 end;
end;
 
begin
 Image.Create;
end. |