ActionScript 3.0: brug af slice(), indexOf() og length med Strings

20. oktober 2008

forestil dig at hente denne tekststreng ind i Flash vha. XML eller URLparameter;
<![CDATA[<a href="http://www.campjohn.dk/wp/?p=114">ActionScript 3.0: how to add parameter to eventListener</a>]]>;

tekstfeltet, der skal vise denne tekststreng kan indeholde 38 tegn, men linien ovenfor indeholder 55 tegn, altså har jeg et problem.
men her er en måde at løse det på.

først bruger jeg slice() til at sætte den første html-del af tekststrengen lig en ny midlertidig tekststreng.
dvs. denne del: <![CDATA[<a href="http://www.campjohn.dk/wp/?p=114">

derefter bruger jeg en kombination af slice() og indexOf() til at sætte tekstdelen af tekststrengen lig endnu en ny midlertidig tekststreng.
dvs. denne del: ActionScript 3.0: how to add parameter to eventListener

jeg måler længden af den nyeste midlertidige tekststreng, og hvis den er længere end hvad der kan vises i mit tekstfelt, bruger jeg slice() til at tilpasse den.
efter at have tilpasset længden klistrer jeg "..." på enden af tekststrengen, så man kan se, at teksten er blevet tilpasset tekstfeltet.
slutteligt klistrer jeg de to midlertidige tekststrenge sammen, tilføjer et afsluttende html-tag for ikke at ende op med et ufærdigt link, og assigner den til mit tekstfelts htmlText-parameter.
:O)

her er et eksempel på hvordan ovenstående ser ud i ActionScript 3.0:
var myString:String = <![CDATA[<a href="http://www.campjohn.dk/wp/?p=114">ActionScript 3.0: how to add parameter to eventListener</a>]]>;
trace("myString = "+myString+" myString.length = "+myString.length);

trace("myString.indexOf(>) = "+myString.indexOf('">'));
var myTemp:String = myString.slice(0, (myString.indexOf('">')+2));
var myTemp2:String = myString.slice((myString.indexOf('">')+2), (myString.indexOf('</')));
trace("myTemp = "+myTemp);
trace("myTemp2 = "+myTemp2);

if (myTemp2.length > 38) {
            myTemp2 = myTemp2.slice(0, 35)+"...";
}

myString = ""+myTemp+myTemp2+"</a>";
trace("myString = "+myString);

myText.htmlText = myString;

Vær den første til at give point

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , ,

Powered by BlogEngine.NET 1.3.1.0
Theme by Mads Kristensen (Modifed by Co3)


Om mig

Felix Sanchez Felix Sanchez
Flashin’ about

Send mig en mail Send mail

Kategorier

None

Seneste kommentarer