2010-07-15 4 views
1

텍스트 필드에서 작동하도록 세트 선택을 얻으려면 어떻게해야합니까? 무비 클립 안에는 텍스트 필드가 있고 거기에는 클릭 리스너가있는 버튼이 있습니다. 클릭하면 내부의 모든 텍스트를 선택하고 싶습니다. 이것은 내가 지금까지 가지고있는 것입니다. 당신이 도울 수 있기를 바랍니다.AS3에서 선택 설정

send.addEventListener(MouseEvent.CLICK, function() { 
    panel.tweet.selectable = true; 
    stage.focus = panel.tweet; 
    panel.tweet.setSelection(0, panel.tweet.text.length); 
}); 
+0

의 차이를 (10 ms의 지연을 소개) 할. 패널이 무엇인지 (어떤 유형의 객체)와 '트윗'을 말할 수 있습니까? – Glycerine

+0

함수에 trace 문을 추가하여 처음에 호출되는 것을 확인합니다. – Amarghosh

답변

2

크레이지 - 정상적으로 작동해야합니다.

http://strangemother.com/actionscript/demos/select_text_click_demo/

import flash.events.MouseEvent; 

send.addEventListener(MouseEvent.CLICK, sendMouseClickEventHandler); 

function sendMouseClickEventHandler(ev:MouseEvent):void 
{ 
    stage.focus = tweet; 
    tweet.selectable = true; 
    tweet.setSelection(0, tweet.text.length); 

} 
+0

문제점을 발견했습니다. CS5이고, 새 TLF 텍스트는 없습니다. 이 기능을 지원하고, 어도비 덕분에 나를 혼란에 빠뜨 렸습니다. 도움을 주신 모든 분들께 감사드립니다. –

0

은 이런 식으로 일을 시도 : (내가 지금 테스트하려면 플래시가없는 ...)

send.addEventListener(MouseEvent.CLICK, function() { 
    panel.tweet.selectable = true; 
    panel.tweet.stage.focus = panel.tweet; 
    panel.tweet.setSelection(0, panel.tweet.text.length); 
}); 

가이 아니라면, 다음이를 건드리지 것 MouseUp 이벤트가 될 수 강조 표시 (?)

+0

Unfortunatly, 시도해 보았지만 작동하지 않습니다. 감사합니다. –

0

귀하의 코드가 작동한다, 내가 생각 : 당신이 작업을 볼 수 있도록

나는 약간의 데모를했다.

이벤트 리스너가 전혀 호출되지 않았습니까?

송신 버튼을 차단하는 동영상 클립이있을 수 있습니다 (투명 할 수 있으며 거기에 있음을 알지 못할 수도 있음).

send.stage.addChild(send); 

이 모든 객체의 상단에 버튼을 배치합니다 : 그게 문제가 있다면

신속하고 더러운 방법으로 확인합니다. 핸들러가 호출되지 않고 호출 된 후에도 블로킹을 차단할 수 있습니다. 이 경우 깊이를 다시 정렬하거나 동영상 캡쳐를 mouseEnabled으로 설정하여 false으로 설정할 수 있습니다. 물론 movieclips에 다른 차단 객체 (물론 마우스 이벤트에 반응 할 필요가없는)가 포함되어 있다면 mouseChildren도 도움이 될 수 있습니다.

+0

확실히 부름을 받았으므로 좀 더 알아볼 것입니다. –

1

더 나은 해결책이 있습니다. use callLater; 문제는 mouseEvent입니다. 나중에 선택 사항을 실행하려고하면 작동합니다.

0

문제는 초점에 달려 있습니다.

그냥이 내 코드와 당신의 내가 볼

var timer1:Timer = new Timer(10,1); 
timer1.addEventListener(TimerEvent.TIMER, delayedSelection); 
timer1.start(); 

function delayedSelection(e:TimerEvent):void 
{ 
    stage.focus = tweet; 
    tweet.selectable = true; 
    tweet.setSelection(0, tweet.text.length); 
}