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 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 86 87 88 89 90 91 92 93 94 95 96 97 98
|
program numerisation_de_l_information;
uses
Flash8,URealmovie;
{$FRAME_WIDTH 500}
{$FRAME_HEIGHT 550}
{$FRAME_RATE 32}
{$BACKGROUND $dcdcdc}
const frame_width=500;
frame_height=550;
Type
Smiley=class(Realmovie)
mybmp : BitmapData;
Field:TextField;
Font:TextFormat;
constructor create;
procedure onMouseMove;
procedure draw;
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 Smiley.Create;
begin
inherited create(nil,'schema',1);
setsize(frame_width,frame_height,0,0,10,11);
draw;
mybmp := BitmapData.Create(frame_width+1,frame_height+1); //obligé de le dimensionner avec un pixel supplémentaire pour voir toutes les lignes ?
mybmp.draw(self);//On remplit le bitmap avec le contenu de smiley
clear;//pour éviter deux couches de dessin une dans le movie et l'autre dans le bmp
attachBitmap(mybmp,0,'',false);
Font:=TextFormat.Create( 'Arial',16,$000000,True,False,False,'center');
field:=TextField.Create(self,'codeRGB',1,0,0,200,40);
Field.setNewTextFormat(Font);
end;
Procedure Smiley.onMouseMove;
var R,V,B:integer;
rgb:number;
begin
rgb:=mybmp.GetPixel(_xmouse,_ymouse);
R:=GetRValue(floor(rgb));
V:=GetGValue(floor(rgb));
B:=GetBValue(floor(rgb));
Field.text:='( '+inttostr(R)+' , '+inttostr(V)+' , '+inttostr(B)+' )';
Field._x:=_xmouse-60; //avec modif de TextField _x et_y en number !
Field._y:=_ymouse-40;
end;
procedure Smiley.draw;
var i:integer;
begin
beginFill($ffff00);
Rrectangle(3,1,7,2);
Rrectangle(1,3,2,8);
Rrectangle(8,3,9,8);
Rrectangle(3,9,7,10);
RRectangle(2,2,3,3);
RRectangle(2,8,3,9);
RRectangle(7,2,8,3);
RRectangle(7,8,8,9);
EndFill();
beginFill($000000);
RRectangle(3,4,4,5);
RRectangle(4,3,6,4);
RRectangle(6,4,7,5);
endFill();
beginFill($0088FF);
RRectangle(3,6,4,7);
RRectangle(6,6,7,7);
EndFill();
linestyle(1,$000000);
for i:=0 to 10 do Rline(i,0,i,11);
for i:=0 to 11 do Rline(0,i,10,i);
linestyle(3,$FF0000);
RRectangle(6,4,9,7);
end;
begin
Smiley.create;
stage.scaleMode :='noScale'; //on n'est pas en vectoriel...pour éviter les surprises dans le navigateur
end. |
Partager