Bonjour,
Je vous propose un nouvel élément à télécharger : Jeu des points à relier.
Thèmes abordés :
- Chargement d'un fichier xml
- Ajout et suppression dynamique d'événements souris
- Dessin
cf version Flash.
Qu'en pensez-vous ?
Bonjour,
Je vous propose un nouvel élément à télécharger : Jeu des points à relier.
Thèmes abordés :
- Chargement d'un fichier xml
- Ajout et suppression dynamique d'événements souris
- Dessin
cf version Flash.
Qu'en pensez-vous ?
Excellent exemple, très pédagogique. On peut imaginer une multitude de variations sur la base de ce code.
Je trouve particulièrement intéressante l'utilisation du fichier XML. J'ai découvert à cette occasion ce format que je ne connaissais que de nom : ça m'a tout de suite plu. Merci aux auteurs !
A propos de fichiers, qu'en est-il des fichiers .txt ? Actuellement a-t-on la possibilité de les utiliser ?
Flash n'est pas prévu pour...mais il plus ou moins possible de le faire
le programme ci-dessous affiche son propre source dans un TextField.
cependant, les accents sont interprétés comme de l'UTF8 et les #13#10 provoquent deux passages à la ligne.
Maintenant, si le fichier texte est en UTF8 avec des retours à la ligne Unix ça fonctionnera.
Note que LoadVars est normalement utilisé pour lire des données formatées comme une URL "var1=data1&var2=data2", j'utilise "onData" qui permet d'avoir les données lues avant traitement.
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 program LoadText; uses Flash8; var t: TextField; type TLoadVars = class(LoadVars) constructor Create; procedure onData(src: string); end; constructor TLoadVars.Create; begin inherited Create(); // lire son propre source if not load('loadText.fpr') then t.Text := "erreur générale" else t.Text := ''; end; procedure TLoadVars.onData(src: string); begin t.Text := t.Text + src; end; begin t := TextField.Create(_root, '', 1, 0, 0, Stage.Width, Stage.Height); t.SetNewTextFormat(TextFormat.Create('Courier New', 12)); TLoadVars.Create; end.
Merci pour le code et les explications.![]()
En jouant avec ton code, je suis retombé sur une difficulté que j'avais déjà rencontrée. Mettons que je veuille supprimer tous les 'a' du texte qui va s'afficher. La ligne que j'ai mise en commentaire me fait obtenir un message d'erreur. Est-ce que c'est un bug ou est-ce que c'est mon code qui n'est pas bon ?
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 procedure TLoadVars.onData(src: string); var i: integer; temp: string; begin t.Text := t.Text + src; temp := ''; for i:=1 to length(t.Text) do begin //if t.Text[i] = 'a' then t.Text[i] := '';// "array expected" if not t.Text[i] = 'a' then temp := temp + t.Text[i]; end; t.Text := temp; end;
les deux mon capitaine
alors t.Text[i] := ... n'est pas acceptable, tu peux modifier la propriété "Text" mais pas un caractère de celle-ci. ça reviendrait à lire, modifier puis réécrire la propriété Text: string en une seule opération...remarque pourquoi pas...mais non
Sous Delphi tu ne peux pas non plus écrire Edit1.Text[1] := 'z'...mais tu peux faire un if Edit1.Text[1] = 'z' tu extrais un caractère de la chaîne lue...ça marche.
d'autre part, tu peux ne pas affecter une chaîne vide à un caractère pour le supprimer. la syntaxe Pascal serait Delete(s, i, 1)...mais elle n'est pas supportée par FlashPascal pour l'instant.
Partager