IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Nouvelle version 13.10.25 de FlashPascal 2
Avec, comme amélioration, la possibilité d'exploiter les informations sur le poste de travail

Le , par Paul TOTH

22PARTAGES

3  0 
Nouvelle version 13.10.25 de FlashPascal 2
Avec, comme amélioration, la possibilité d'exploiter les informations sur le poste de travail



http://flashpascal.execute.re/

C'est une mise à jour mineure, mais elle permet d'exploiter la classe System.capabilities (capabilities en FlashPascal) pour avoir des informations sur le poste de travail.

Code : Sélectionner tout
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
program SystemCapabilities;

{$FRAME_WIDTH 550}
{$FRAME_HEIGHT 400}
{$FRAME_RATE 12}
{$BACKGROUND $FFFFFF}

uses
  Flash8;

var
  t: TextField;

begin
  t := TextField.Create(_root, 't', 1, 0, 0, 550, 400);
  t.Text := 'avHardwareDisable = ' + BoolToStr(capabilities.avHardwareDisable) + #13 +
            'hasAccessibility = ' + BoolToStr(capabilities.hasAccessibility) + #13 +
            'hasAudio = ' + BoolToStr(capabilities.hasAudio) + #13 +
            'hasAudioEncoder = ' + BoolToStr(capabilities.hasAudioEncoder) + #13 +
            'hasEmbeddedVideo = ' + BoolToStr(capabilities.hasEmbeddedVideo) + #13 +
            'hasIME = ' + BoolToStr(capabilities.hasIME) + #13 +
            'hasMP3 = ' + BoolToStr(capabilities.hasMP3) + #13 +
            'hasPrinting = ' + BoolToStr(capabilities.hasPrinting) + #13 +
            'hasScreenBroadcast = ' + BoolToStr(capabilities.hasScreenBroadcast) + #13 +
            'hasScreenPlayback = ' + BoolToStr(capabilities.hasScreenPlayback) + #13 +
            'hasStreamingAudio = ' + BoolToStr(capabilities.hasStreamingAudio) + #13 +
            'hasStreamingVideo = ' + BoolToStr(capabilities.hasStreamingVideo) + #13 +
            'hasVideoEncoder = ' + BoolToStr(capabilities.hasVideoEncoder) + #13 +
            'isDebugger = ' + BoolToStr(capabilities.isDebugger) + #13 +
            'language = ' + capabilities.language + #13 +
            'localFileReadDisable = ' + BoolToStr(capabilities.localFileReadDisable) + #13 +
            'manufacturer = ' + capabilities.manufacturer + #13 +
            'os = ' + capabilities.os + #13 +
            'pixelAspectRatio = ' + FloatToStr(capabilities.pixelAspectRatio) + #13 +
            'playerType = ' + capabilities.playerType + #13 +
            'screenColor = ' + capabilities.screenColor + #13 +
            'screenDPI = ' + FloatToStr(capabilities.screenDPI) + #13 +
            'ScreenResolutionX = ' + FloatToStr(capabilities.screenResolutionX) + #13 +
            'ScreenResolutionY = ' + FloatToStr(capabilities.screenResolutionY) + #13 +
            'serverString = ' + capabilities.serverString + #13 +
            'version = ' + capabilities.version;

end.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 27/10/2013 à 19:00
ben avec mon code, mets en commentaire le "Stage.addListener(Self);", lance le programme dans le player externe et élargie la fenêtre...le carré jaune n'est plus dans le coin droite de la fenêtre, il n'a pas bougé et j'ai un espace blanc. Alors qu'avec le addListener, la méthode onResize est invoqué, elle redessine les rectangle rouge et jaune de tel sorte que ça occupe toute la largeur de la fenêtre.
[ATTACH]129586d1/a/a/a" />
3  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 27/10/2013 à 2:06
Citation Envoyé par Archimède  Voir le message
En effet, ça fonctionne ainsi. D'ailleurs, il existe
Code : Sélectionner tout
		  stage.fullScreenWidth
mais je ne sais pas s'il est opérationnel en as2...

En fait, je voudrais faire un site internet entièrement en flash bien qu'il ne soit pas reconnu par le W3C...et il est nécessaire qu'il occupe la totalité de la surface client du navigateur. Pour la largeur, il n'y a plus de souci mais pour la hauteur, je voudrais mettre une scrollbar qui corresponde exactement à cette dimension; et je ne vois pas comment obtenir la hauteur exacte de la surface client du navigateur qui va supporter ma page index.

Une idée ?

attention, capabilities.screenResolutionX c'est la résolution de l'écran du PC, pas celle de la fenêtre du navigateur; c'est pour ça que je pensais que tu voulais travailler en fullscreen. Si tu veux occuper toute la page du navigateur tu as deux solutions:
1) pointer directement sur le SWF sans passer par une page HTML (tu ne peux pas alors gérer les navigateurs qui ne gèrent pas Flash)

2) faire une page HTML avec un objet qui prend toute la page...quelque chose comme ça
Code html : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  
<!DOCTYPE HTML> 
<html> 
  <head> 
   <title>FlashPascal</title> 
   <style type="text/css"> 
    body, html { 
      padding: 0px; 
     margin: 0px; 
     width:100%; 
     height:100%; 
    } 
        embed { position: absolute; top: 0px; left: 0px } 
   </style> 
  </head> 
  <body> 
    <embed type="application/x-shockwave-flash" src="fullpage.swf" width="100%" height="100%"/> 
  </body> 
</html>

avec un code comme celui-ci

Code : Sélectionner tout
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
 
program fullpage; 
 
{$FRAME_WIDTH 550} 
{$FRAME_HEIGHT 400} 
{$FRAME_RATE 12} 
{$BACKGROUND $FFFFFF} 
 
uses 
  Flash8; 
   
type 
  TFullPage = class(MovieClip) 
    constructor Create; 
    procedure onResize; 
  end; 
 
constructor TFullPage.Create; 
begin 
  inherited Create(_root, 'FullPage', 1); 
  Stage.addListener(Self); 
  onResize; 
end; 
 
procedure TFullPage.onResize; 
begin 
  clear(); 
  beginFill($ff0000); 
  linestyle(1,0); 
  lineto(Stage.Width,0); 
  lineto(Stage.Width,100); 
  lineto(0,100); 
  endFill(); 
  beginFill($ffff00); 
  moveto(Stage.Width-100,0); 
  lineto(Stage.Width,0); 
  lineto(Stage.Width,100); 
  lineto(Stage.Width-100,100); 
  lineto(Stage.Width-100,0); 
  endFill(); 
end; 
 
begin 
  Stage.scaleMode := 'noScale'; 
  Stage.align := 'TL'; 
  TFullPage.Create(); 
end.
Note que l'image étant dynamique, elle doit être redessinée quand la page change de dimensions (onResize lié à Stage.addListener)
2  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 26/10/2013 à 7:38
Citation Envoyé par Archimède Voir le message
Super l'exemple :

.
je pense que tu veux faire un SWF fullscreen, dans ce cas il te manque un Stage.scaleMode := 'noScale'; et probablement un Stage.displayState := 'fullScreen';.
1  0 
Avatar de Archimède
Membre chevronné https://www.developpez.com
Le 25/10/2013 à 18:43
Nickel, je regarde ça...
0  0 
Avatar de joreveur
Membre averti https://www.developpez.com
Le 25/10/2013 à 18:54
Bonjour

merci. le lien est dans la signature je suppose ?

Bon we
0  0 
Avatar de Archimède
Membre chevronné https://www.developpez.com
Le 25/10/2013 à 19:17
Super l'exemple :

program SystemCapabilities;


J'ai essayé un truc simple :
Code : Sélectionner tout
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
program Project2;

{$FRAME_RATE 12}
{$BACKGROUND $FFFFFF}

uses
  Flash8;



begin
  with _Root do
  begin
   beginFill($ff0000);
   linestyle(1,0);
   lineto(capabilities.screenResolutionX,0);
   lineto(capabilities.screenResolutionX,100);
   lineto(0,100);
   endFill();
   beginFill($ffff00);
   moveto(capabilities.screenResolutionX-100,0);
   lineto(capabilities.screenResolutionX,0);
   lineto(capabilities.screenResolutionX,100);
   lineto(capabilities.screenResolutionX-100,100);
   lineto(capabilities.screenResolutionX-100,0);
   endFill();
  end;
  stage.align:='TL';
end.
ça ne fonctionne pas... j'ai fait la même chose en actionscript :
Code : Sélectionner tout
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
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.system.Capabilities;
	
	public class MyScreen extends Sprite 
	{
		
		public function MyScreen():void 
		{
		  
		  with (graphics)
		  {
		    beginFill(0xFF0000);
		    lineStyle(1, 0);
		    drawRect(0, 0, Capabilities.screenResolutionX,100);
		    endFill();
		    beginFill(0xFFFF00);
		    drawRect(Capabilities.screenResolutionX-100,0,100,100);
		    endFill();
		  }	 
		  stage.align = "TL";
		}	
	}	
}
là, le fichier swf généré n'est pas bon non plus mais flashdevelop que j'utilise génére un fichier index en html contenant un script qui me l'affiche comme convenu...

Ce doit être réalisable en javascript pour flashpascal...
0  0 
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 25/10/2013 à 22:00
Bravo, Paul !

Code : Sélectionner tout
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
// Date littérale en trois langues
// FlashPascal2 13.10.25

// Formats retenus :
// Friday 25 October 2013
// Freitag, 25. Oktober 2013
// vendredi 25 octobre 2013

program DateLitterale2;

uses
  Flash8,
  Date; // http://flashpascal.sourceforge.net/

{$FRAME_WIDTH 320}
{$FRAME_HEIGHT 32}

const
  EN = 0;
  DE = 1;
  FR = 2;
  NOM_JOUR: array[EN..FR, 0..6] of string = (
    ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
    ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'),
    ('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi')
  );
  NOM_MOIS: array[EN..FR, 0..11] of string = (
    ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
    ('Januar', 'Februar', "März", 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'),
    ('janvier', "février", 'mars', 'avril', 'mai', 'juin', 'juillet', "août", 'septembre', 'octobre', 'novembre', "décembre")
  );
  
var
  f: TextFormat;
  t: TextField;
  d: TDate;
  l: integer;

begin
  f := TextFormat.Create('Times', 24);
  t := TextField.Create(nil, 't', 0, 0, 0, 320, 32);
  d := TDate.Create;
  
  if capabilities.language = 'de' then
    l := DE
  else
    if capabilities.language = 'fr' then
      l := FR
    else
      l := EN;
  
  f.align := 'center';
  t.setNewTextFormat(f);
  
  t.text := NOM_JOUR[l, d.getDay];
  if l = DE then t.text := t.text + ',';
  t.text := t.text + #32;
  
  t.text := t.text + IntToStr(d.getDate);
  if l = DE then t.text := t.text + '.';
  if (l = FR) and (d.getDate = 1) then t.text := t.text + 'er';
  t.text := t.text + #32;
  
  t.text := t.text + NOM_MOIS[l, d.getMonth];
  t.text := t.text + #32;
  
  t.text := t.text + IntToStr(d.getFullYear);
end.
0  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 26/10/2013 à 7:39
Citation Envoyé par joreveur Voir le message
Bonjour

merci. le lien est dans la signature je suppose ?

Bon we
oui le site c'est http://flashpascal.execute.re, mais si tu as une version du logiciel, au lancement il t'indique quand une nouvelle version est disponible.
0  0 
Avatar de joreveur
Membre averti https://www.developpez.com
Le 26/10/2013 à 9:14
Bonjour,
Citation Envoyé par Paul TOTH Voir le message
oui le site c'est http://flashpascal.execute.re, mais si tu as une version du logiciel, au lancement il t'indique quand une nouvelle version est disponible.
Merci

oui je découvre tranquillement tout ton travail ...

Comme j'ai pris la version portable et étant sous Linux ( avec Wine) je n'ai juste qu'un demi popup qui s'affiche quelques secondes (mais maintenant je saurai)

Ce n'est pas ça le plus important tout le reste marche impeccablement bien.

petites questions au passage, dans les nouvelles versions qu'est-ce qui change ? le dossier bin ou l'unit ou voire les 2 ? i

Serait il possible dans ton zip de les inclure dans un un dossier (du nom de la version) comme ça, en décompressant ça n’écraserait pas les anciennes versions. (c'est ce que je fait manuellement)

Bien à toi
0  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 26/10/2013 à 17:00
Citation Envoyé par joreveur Voir le message
Bonjour,

Merci

oui je découvre tranquillement tout ton travail ...

Comme j'ai pris la version portable et étant sous Linux ( avec Wine) je n'ai juste qu'un demi popup qui s'affiche quelques secondes (mais maintenant je saurai)

Ce n'est pas ça le plus important tout le reste marche impeccablement bien.

petites questions au passage, dans les nouvelles versions qu'est-ce qui change ? le dossier bin ou l'unit ou voire les 2 ? i

Serait il possible dans ton zip de les inclure dans un un dossier (du nom de la version) comme ça, en décompressant ça n’écraserait pas les anciennes versions. (c'est ce que je fait manuellement)

Bien à toi
ça dépend de la version...par contre pour le coup je ne conserve pas l'historique des versions, je ne propose toujours que la dernière qui est la seule maintenue...libre à toi de conserver le zip de chaque version.

je n'ai pas testé sous WINE, il doit y avoir un petit problème de positionnement de la fenêtre.
0  0