Forums Développement Multimédia

Aller au contenu

Mise en pgae en multi colone avec textfield

CODE Actionscript

2 réponses à ce sujet

#1 contact

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 147 messages

Posté 19 June 2008 - 08:02 AM

Bonjour, j'aurais aimer pouvoir utiliser un mise en page en multi colone

je voudarais créer de texfield lier c'est a dire quand mon texte ( qui sera du textHtml) arrive en fin de la premiere colone qu'il continue sur la deuxieme colonne de façon automtique

ma source de texte va venir d'un fichier xml

Si quelqu'un a une idée ou un autre solution je suis preneur

a+

philippe

#2 francoislepichon

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 19 June 2008 - 12:58 PM

Hello,

je viens de bricoler quelque chose, le sujet est intéressant j'y avais jamais réfléchis.
Après recherche je suis tomber sur getLineText() qui prend un numéro de ligne et qui renvois le contenu de la ligne dans le textfield associé. Très pratique pour ça.

Voilà un exemple (à l'arrache icon_wink.gif) :

Action Script



var textHtml:String = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";

var c:int = -1;
var maxLine:uint = 15;

var baseTxtField:TextField = new TextField();
baseTxtField.multiline = true;
baseTxtField.wordWrap = true;
baseTxtField.width = 200;
baseTxtField.x = -200;
baseTxtField.y = 5;
baseTxtField.border = true;
addChild(baseTxtField);

function makeColumns(txt:String) {

trace©;

baseTxtField.htmlText = txt;

if (baseTxtField.numLines > maxLine) {
c++;
this["txtField"+c] = new TextField();
this["txtField"+c].multiline = true;
this["txtField"+c].wordWrap = true;
this["txtField"+c].width = 200;
this["txtField"+c].x = (this["txtField"+c].width+10)*c;
this["txtField"+c].y = 5;
this["txtField"+c].border = true;
this["txtField"+c].htmlText = splitText(txt);
this["txtField"+c].height = this["txtField"+c].textHeight+30;
addChild(this["txtField"+c]);
makeColumns(getRestText(txt));
} else {
c++;
this["txtField"+c] = new TextField();
this["txtField"+c].multiline = true;
this["txtField"+c].wordWrap = true;
this["txtField"+c].width = 200;
this["txtField"+c].x = (this["txtField"+c].width+10)*c;
this["txtField"+c].y = 5;
this["txtField"+c].border = true;
this["txtField"+c].htmlText = txt;
this["txtField"+c].height = this["txtField"+c].textHeight+30;
addChild(this["txtField"+c])
}

}

function splitText(txt:String):String {
var end:int = txt.indexOf(baseTxtField.getLineText(maxLine),0);
var txt:String = txt.substring(0,end);
return txt;
}

function getRestText(txt:String) {
var end:int = txt.indexOf(baseTxtField.getLineText(maxLine),0);
txt = txt.substring(end,txt.length);
return txt;
}

makeColumns(textHtml);



Dans le principe, je fais un textfield témoin dans lequel je mets tout le texte. Je split mon text à la 20° ligne pour remplir une colonne et réitère tant qu'il reste du texte dans mon textfield témoin.

A partir de là, je pense que tu pourras faire ce que tu veux.

Bon courage,
stArk

#3 mail

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 246 messages

Posté 19 June 2008 - 13:15 PM

Le texte multi-colonne sera géré par le Flash Player 10 :
http://labs.adobe.com/technologies/flashplayer10/demos/

Après y'a pas de date de sortie pour la version finale, donc si c'est pour un projet à court terme ça te servira pas à grand chose, c'est juste à titre d'info =)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)