2010-04-08 26 views
1

Il y a seulement de la place pour trois lignes de texte dans l'interface, mais le contenu est externe et variable, et s'il finit par reprendre plus de trois lignes, il doit y avoir une sorte de fonctionnalité de bouton 'voir tout'. Je peux un peu penser à ce que cette fonction doit ressembler, mais je ne suis pas tout à fait sûr de ce que la meilleure façon de le faire dans AS3 serait. Quelque chose comme (en pseudo code):Flash AS3: rogner le contenu de TextField à X lignes, ajouter '...' à la fin

function cropText(source:TextField, length:int, append:String):TextField{ 
    if(source.lineCount > length){ 
     source.text = // magic function that retuns the first length lines, 
     // minus append.length characters, with the append value tacked onto the end 
    } 
    return source; 
} 

... droite? Comment voulez-vous remplir le peu manquant?

Répondre

2

Quelque chose comme ...

private function cropText(source:TextField, length:int, append:String):TextField { 
    if (source.numLines > length) { 
     source.text = source.text.substr(0, source.getLineOffset(length) - append.length) + append; 
    } 

    return source; 
} 
+0

Ouiii, getLineOffset était la pièce de puzzle manquante. Merci! –