Je crois que je n'ai pas tout compris en ce qui concerne l'objet stage...
En effet pour moi, il s'agit de la surface utile du navigateur.
Et si je veux optimiser la scène d'un fichier flash, j'ai besoin le plus souvent de fixer la hauteur de mon movie à la hauteur utile du navigateur et de recalculer proportionnellement sa largeur...
Donc, j'ai fait un essai le plus simple possible dans un premier temps :
Ma question : je n'ai pas tout compris... Pourquoi ça ne marche pas ?
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
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 program stage; uses Flash8; {$FRAME_WIDTH 1024} {$FRAME_HEIGHT 768} {$BACKGROUND $ffffff} const w=1024; h=1024; //démesuré volontairement puisque en hauteur utile on a environ 570 pixels en format standard(1024x768) type mymc=class(movieclip) procedure DoResize; end; var stag:TStage; mc:mymc; procedure mymc.doResize; begin if _Height>stag.height then //si la hauteur du movie est >à la hauteur utile navigateur alors begin _width := (stag.height*_width)/(_height); //garder les proportions en largeur _height :=stag.height; //imposer la hauteur utile du navigateur pour éviter de déborder en bas end; //else.... end; begin mc:=mymc.create(nil,'mc',1); mc._x:=0; mc._y:=0; mc._width:=w; mc._height:=h; stag.onresize:=mc.doResize;//on teste la hauteur avant de dessiner et on redimensionne mc.beginFill($ff0000); mc.moveto(0,0); mc.lineto(mc._width,0); mc.lineto(mc._width,mc._height); mc.lineto(0,mc._height); mc.lineto(0,0); end.
Partager