2010-11-20 3 views
0

TLF를 사용하여 사전 항목을 레이아웃하고 있습니다. 잘 작동하고 있지만 기본적으로 가로 간격과 부모와 별도로 SpanElements에서 패딩을 설정하기 위해 FlowElements에서 스타일 속성을 설정하여 얻을 수있는 것보다 훨씬 세분화 된 레이아웃 제어가 필요합니다.TLF - 여러 컨테이너 및 줄 바꿈을 통한 텍스트 흐름

가장 유망한 해결책은 항목의 여러 요소를 별도의 컨테이너로 분리하고 텍스트가 자동으로 추가되도록 새 컨테이너와 ContainerController를 추가하는 것입니다. 각각의 새로운 컨테이너로 흐른다.

이 ALMOST는 작동하지만 다른 컨테이너로 이동해야하는 두 텍스트 섹션 사이에 여분의 줄 바꿈이 삽입되면 텍스트가 다음 컨테이너로 올바르게 흐르게됩니다. 줄 바꿈없이 컨테이너의 크기는 올바르게 지정되지만 텍스트는 표시되지 않습니다.

이 예제에서는 컨테이너 스프라이트에 테두리를 추가하여 어디에서 그려지는지 볼 수 있습니다. 줄 바꿈을 제외하고는 텍스트가 완전히 동일합니다. 음절 필드는 ParagraphElement 내의 SpanElement입니다. 발음 레이블과 텍스트는 다른 ParagraphElement 안에있는 별도의 SpanElements입니다. 줄 바꿈없이

: 'RAB 비트'와 '사운드처럼 :'사이에 줄 바꿈으로

no line break

'RAE의 biht'AFTER 줄 바꿈으로

1 break

(줄 바꿈은 사전에 아무 효과가 없습니다) :

2 breaks

볼 수 있듯이 텍스트 다음에 줄 바꿈이 추가되지 않지만 줄 맞춤이 해제되어 있지 않으면 발음이 표시되지 않습니다. 줄 바꿈을 조합하여 올바르게 정렬하지 못하는 것 같습니다.

아이디어가 있으십니까? 이 버그는 TLF에 있습니까? 다른 방법을 시도해야합니까? 모든 텍스트를 하나의 단위로 선택할 수있게하고 싶습니다. TLF가 제공하는 더 나은 렌더링 및 컨트롤이 좋지만 레이아웃 유연성이 필요합니다. 줄 바꿈 및 위치 지정 오프셋을 사용하여 이런 식으로 뭔가를 해킹 할 수는 있지만 가능하지는 않습니다. 읽어 주셔서 감사합니다.

답변

1

내가 도움이 될만한 Adobe Cookbooks의 조리법을 작성했습니다. 기본적으로 컨테이너 컨트롤러에 주로 초점을 맞추기 위해 스팬과 단락 요소를 완전히 사용하지 않는 것이 훨씬 쉽다는 것을 알았습니다. 희망이 도움이 :

Generating a formatted TextFlow Layout for plain text assets


업데이트 동적 컨테이너

, 당신은 아마 당신의 목표 문자열을 결정하기 위해 라인 경계의 끝을 사용할 수 있습니다, 그것은 문자열 길이, 글꼴 크기의와 함께 , 패딩 등, 당신은 당신의 용기에 필요한 크기를 발견하고 그에 따라 호출하여 컨테이너의 크기를 변경할 수 있습니다 : 여기

targetFlow.flowComposer.getControllerAt(controllerIndex).getContentBounds().width; 

//and/or 

targetFlow.flowComposer.getControllerAt(controllerIndex).getContentBounds().height; 

가 자동으로 용기의 내부에 들어가도록 텍스트 흐름의 글꼴 크기를 변경 내가 쓴 또 다른 조리법이다 : Automating font size for TextFlow containers

글꼴 크기를 변경하는 대신 텍스트 크기에 맞게 컨테이너 크기를 변경할 수 있습니다.

이 정보가 도움이 되었기를 바랍니다.

+0

@ TheDarkInl1978 훌륭한 기사입니다. 연결 해줘서 고마워. 그러나 당신의 예제와 내가하려고하는 것의 핵심적인 차이점은 다이나믹 컨테이너 사이징에 비해 고정적이라고 생각합니다. 이 기사에서는 일정한 크기의 컨테이너를 레이아웃 한 다음 텍스트를 통해 텍스트를 흐르게하는 것이 매우 효과적입니다. 하지만 내가 원하는 것은 텍스트의 특정 가변 길이 부분을 해당 독립적이고 적절한 크기의 컨테이너로 제한하는 것입니다. 이 작업에 대한 귀하의 접근 방법을 채택하는 것에 대해 의견이 있습니까? 감사. 물론 – Dane

+0

입니다. 내 대답을 업데이트했습니다. – TheDarkIn1978

+0

@ TheDarkInl1978 업데이트 주셔서 감사합니다. 이것은 위에서 시도한 것과 비슷하지만 볼 수 있듯이 텍스트가 컨테이너에서 컨테이너로 흐르는 방식에 많은 불일치가 발생했습니다. FlowElements를 추가하는 대신 일반 텍스트 문자열을 작성하여이 작업을 수행해야한다고 말하고 있습니까? 내가 시도 할 수있는 한 가지 방법은 컨테이너 크기를 설정하고 모든 컨테이너를 전체 TextFlow에 연결하기 위해 먼저 텍스트 섹션 (텍스트로)에 대해 독립적 인 TextFlow를 만드는 것입니다. 비효율적이지만 어쩌면해볼만한 가치가있는 것 같습니다. – Dane

관련 문제