2009-03-29 2 views
0

텍스트는 대답 :액션 스크립트 같이 IndexOf 문제

"안녕 \ 연구 안녕"

내가 \ r에의 인덱스 위치를 검색 할 수 없습니다입니다 indexOf 함수를 사용하면 항상 -1을 반환합니다.

내가 잘못하고있는 것을 아는 사람이 있습니까?

var txt:TextField; 
txt.multiline = true; 

txt.text = "Hola \r hola"; 

//txt now renders fine with the line break 

trace(txt.indexOf("\r")); //Returns -1, should return the valid index of \r in txt 

답변

2

나는 그것을 시도했다.

여전히 작동하지 않는다면, \ r 이외의 다른 문자를 먼저 검색해보십시오.이 경우에도 \ n을 검색하십시오. 어쩌면 줄 바꿈이 어떻게 든 변형 될 수 있습니다. (어떤 OS에 당신을입니까?)

+0

빠른 답변을 작성해 주셔서 감사합니다. 초기화 문제를 보지 못했습니다. :) –

+0

어리석은 오류를 만들어 내고 아무것도 작동하지 않는 그 날의 감사합니다. 나쁘다. 이제 작동합니다. –

1

당신이 텍스트 필드의 인덱스 대신에 관심있는 때 TextField.text를 얻기 위해 노력하고 나에게 보인다.

trace(txt.text.indexOf("\r")); 

가 조금 더 잘 작동 할 수있다. 예상 하듯이 ...

result>5 

:

var textField:TextField = addChild(new TextField()) as TextField; 
textField.multiline = true; 

textField.text = "test \r test"; 

trace("result>" + textField.text.indexOf("\r")); 

이 코드는 추적 : 미코의 대답에 따라

+0

돌아와 줘서 고마워, 나도 그걸 시도했지만 아직 작동하지 않는다. –

+0

브라이언, txt.text는 문자열을 반환하지 않습니까? 물론, 나는 좀 더 명확하게 텍스트를 작성할 수 있었지만 내 추적 선은 정확했다. –

+0

하지만 toString()을 사용합니다. 당신은 초보자에게 매우 유용한 자동 완성 팝업을 얻습니다, 그는 내 의견으로는 완성 창의 도움으로 오래 전에 이것을 알아 냈을 것입니다. –

1

좋아, 그래서 첫 번째 것들 첫째,

당신은 당신의 텍스트 필드의 인스턴스를하지 않은

, 당신은 단지 참조를했다.

두 번째로 IndexOf는 TextField 클래스에서는 사용할 수 없지만 String 클래스에서는 사용할 수 없으므로 다음을 사용하면 더 이상 문제가 없습니다. 그것은 나에게 잘 어울린다.

테오는 본질적으로 정확하지만 나는 좀 더 명확하게하려고 생각했습니다.

내가 도와 줄 수 있기를 바랍니다. 또한 공백 문자 나 다른 패턴을 쉽게 찾을 수있는 정규식을 확인하는 것이 좋습니다.

+0

Brian, indexOf는 TextField 클래스에서 사용할 수 없지만 txt.text는 String을 반환하므로 String으로 다시 변환 할 필요가 없습니다. 여기를 확인하십시오 : http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/text/TextField.html#text –

+0

문자열이라는 것을 알고 있지만 마침표를 입력하면 toString()이라고 말하면됩니다. 사용할 수있는 속성과 메서드를 보여주기 위해 자동 완성 상자 팝업이 나타납니다. tjames가 도움이 될 것이라고 생각했습니다. –