simojava
Messages postés5Date d'inscriptionjeudi 4 mai 2006StatutMembreDernière intervention 9 août 2006
-
5 août 2006 à 00:21
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 2009
-
5 août 2006 à 12:03
bonjour tout le monde,
J'ai codé une classe en AS qui charge tous les caracteres speciaux et les affiche dans un MovieClip.
Le probleme est que certains caracteres ne s'affichent pas mais plutot un carre s'affiche a la place.
C peut etre un prob d'encodage, mais je ne sais pas commenet m'y prendre.
j'ai essaye avec la methode embedFonts mais tjrs rien
Kelkun aurait une idee?
Voici ma classe, pour la tester creez un MovieClip vide et appeler la methode drawTable(x:Number, y:Number).
Si vous avez une solution veuillez svp me la communiquer.
Merci d'avance
class SpecialChar extends MovieClip {
private static var box_size = 25;
private var symbol:Array;
private var table:MovieClip;
private var xt, yt:Number;
private var xpos, ypos:Number = 0;
public var ourformat:TextFormat;
/*
/Constructor
*/
public function SpecialChar() {
}
/*
/ Drawing small boxes wich will contain the characters
*/
private function box(clip:MovieClip, x:Number, y:Number, s:String):Void {
clip.lineStyle(1, 0x8000ff, 100);
clip.moveTo(x, y);
clip.lineTo(x+SpecialChar.box_size, y);
clip.lineTo(x+SpecialChar.box_size, y+box_size);
clip.lineTo(x, y+SpecialChar.box_size);
clip.lineTo(x, y);
var tf:TextField = clip.createTextField("txtfld", clip.getNextHighestDepth(), x, y, 25, 25);
tf.text = s;
//tf.embedFonts = true;
ourformat=tf.getTextFormat();
ourformat.font = "Times New Roman";
ourformat.size = 12;
ourformat.bold = true;
ourformat.align = "center";
ourformat.color = 0x000000;
tf.setTextFormat(ourformat);
}
/*
/ Get the symbol corresponding to the given codes
*/
private function getSymbol():Void {
this.symbol = new Array();
for (var i = 0; i<255; i++) {
this.symbol.push(String.fromCharCode(i));
}
}
private function drawTable(x:Number, y:Number):Void {
this.getSymbol();
this.table = this.createEmptyMovieClip("tableChar", 10);
this.table._x = x;
this.table._y = y;
var xpos:Number = 0;
var ypos:Number = 0;
var ctr:Number = 0;
while (ctr<this.symbol.length) {
this.box(this.table, xpos, ypos, this.symbol[ctr]);
if ((xpos%(16*SpecialChar.box_size)) == 0 && (xpos != 0)) {
ypos += 25;
xpos = 0;
} else {
xpos += SpecialChar.box_size;
}
ctr++;
}
}
For x = 1 To Len(shiftVal)
test = Mid(shiftVal, x, 1)
If Not test = 1 Then
If Not test = 2 Then
If Not test = 3 Then
If Not test = 4 Then
If Not test = 5 Then
If Not test = 6 Then
If Not test = 7 Then
If Not test = 8 Then
If Not test = 9 Then
If Not test = 0 Then
Erreur = 1
Exit Function
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next x
Fin:
End Function
Public Function Transf(Lettre)
Dim vaLettre$
Dim valNewLettre$
valLettre = (Asc(Lettre))
valNewLettre = 0
If mainForm.Option(0).Value = True Then
valNewLettre = (valLettre + shiftVal)
Else
valNewLettre = (valLettre + (255 - shiftVal))
End If
If valNewLettre > 255 Then
valNewLettre = valNewLettre - 255
End If
Transf = (Chr(valNewLettre))
End Function
Private Sub SHIFT_Click()
Temp$ = ""
Temp$ = Text1.Text
shiftVal = Valeur.Text
If Valeur.Text = "" Then GoTo Erreur
test = shiftValVerif()
If Erreur = 1 Then GoTo Erreur
If shiftVal > 254 Then GoTo Erreur
If Text1.Text = "" Then GoTo Erreur2
Text1.Text = ""
For x = 1 To Len(Temp)
oldChar = Mid(Temp, x, 1)
Text1.Text = Text1.Text + Transf(oldChar)
Next x
GoTo Fin
Erreur:
errorMSG = MsgBox("Shifting value must be" + vbCrLf + "a number between 1-254!", _
vbExclamation + vbOKOnly, _
" Error!")
Valeur.Text = ""
Valeur.SetFocus
GoTo Fin
Erreur2:
error2MSG = MsgBox("Please enter the characters to convert!", _
vbExclamation + vbOKOnly, _
" No chars!")
Text1.SetFocus
GoTo Fin
Fin:
End Sub
Private Sub copyright_Click()
' Se connecter au site de l'auteur.
On Error GoTo Erreur
Call Connect("http://www.snscrew.net")
Exit Sub
Erreur:
errorMSG = MsgBox("Impossible to connect to snsCrew website...", _
vbExclamation + vbOKOnly, _
" Connexion error")
End Sub
Public Function Connect(ByVal URL As String) As Long
'Cette fonction n'est utile que pour la connection au site de l'auteur.
Connect = ShellExecute(0&, vbNullString, URL, _
vbNullString, vbNullString, vbNormalFocus)
End Function
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 5 août 2006 à 01:41
Mdr !!
Mortalino, c'est de l'AS (Actionscript) ^^. Donc le post est tout simplement mal placé et devrait se trouver sur le forum de:
[ www.flashkod.com]
lol!
@+.
www.monblog.ch/telovtutoriels Flash pour débutants
cs_ilde
Messages postés12Date d'inscriptionmardi 1 août 2006StatutMembreDernière intervention 5 août 2006 5 août 2006 à 01:43
Bonjour à tous,
Je souhaite mettre une liste de données dans une combobox, mais je ne trouve pas comment faire? je souhaite seulement sélectionner un mot dans une liste déroulante à l'intérieur de ma userform, quelqu'un peut t'il m'aider... merci
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 5 août 2006 à 01:48
Ben de nouveau, poses ta question sur le bon forum ici t'es dans le bar-> discussions libres ^^et une fois sur le bon site (flashkod.com je suppose), tappes liste ou combobox dans le moteur de recherche, y'a sûrement ta réponse.
@±.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 5 août 2006 à 12:03
Encore une fois je vais contredire le :
System.useCodepage = true;
Je ne comprend pas pourquoi on conseil a tors cette fonction.
Il ne faut pas utiliser useCodepage !!! À prime abord, cette ligne semble régler comme par magie tous les problèmes, mais c'est faux! Cela force le player Flash à utiliser l'encodage du système sur lequel il roule plutôt que l'Unicode, comme le faisait Flash 5. Le danger est que les visiteurs n'ont pas toujours le même encodage que vous. Les caractères sont affichés avec l'encodage du système du visiteur et non selon un standard qui fonctionnera sur tous les systèmes. Même si la majorité des systèmes utilisent CP1252 ( Latin 1 ), il reste tout de même un danger que vos données soient mal affichées pour quelqu'un à l'étranger ou avec une mauvaise configuration. useCodepage est une solution qui peut sembler facile, mais qui ne règle pas le problème pour tout le monde et qui n'est pas viable à long terme puisque l'Unicode prend de plus en plus de place et que useCodepage risque de disparaître dans les prochaines versions de Flash. Il est donc recommandé de pas y toucher et de le laisser à sa valeur par défaut: false.
Il faut préférer le bon encodage a l'enregistrement du fichier. Ou une modification du code. ( La version 8 de Flash facilite grandement ce processus.