私は選択肢の魅力的なことをしたいと思います。現在選択されている文字の境界ボックスを取得するにはどうすればよいですか?現在の選択範囲の境界ボックスを取得するにはどうすればよいですか?
答えて
これは重要ではありませんでした。まず、選択には複数の矩形が必要な場合があります。次に、それを行う便利な方法はありません。ここで
は私がしなければならなかったものです:
var start:int = op.activePosition < op.anchorPosition ? op.activePosition : op.anchorPosition;
var end:int = op.activePosition > op.anchorPosition ? op.activePosition : op.anchorPosition;
var textFlow:TextFlow = this.textFlow;
var rectangles:Dictionary = new Dictionary();
// For each selected character, make a box
for(var i:int=start; i < end; i++) {
var flowLine:TextFlowLine = textFlow.flowComposer.findLineAtPosition(i, true);
if(rectangles[ flowLine.absoluteStart ] == null) {
rectangles[ flowLine.absoluteStart ] = new Rectangle();
(rectangles[ flowLine.absoluteStart ] as Rectangle).x = 0xffffff;
(rectangles[ flowLine.absoluteStart ] as Rectangle).right = 0;
}
var currentRect:Rectangle = rectangles[ flowLine.absoluteStart ];
var textLine:TextLine = flowLine.getTextLine(true);
var atomIndex:int = textLine.getAtomIndexAtCharIndex(i);
if(atomIndex >= 0) {
var atomBounds:Rectangle = textLine.getAtomBounds(atomIndex);
var pt:Point = this.globalToLocal(textLine.localToGlobal(new Point(atomBounds.left, atomBounds.top)));
if(pt.x <= currentRect.left) {
currentRect.left = pt.x;
currentRect.top = pt.y;
}
pt = this.globalToLocal(textLine.localToGlobal(new Point(atomBounds.right, atomBounds.bottom)));
if(pt.x >= currentRect.right) {
currentRect.right = pt.x;
currentRect.bottom = pt.y;
}
}
}
return rectangles;
私はこの見たドキュメントの周りのビットを見てから、このを完全に制御を取得するための些細な方法があります信じていない: http://opensource.adobe.com/wiki/display/flexsdk/Spark+Text+Primitives#SparkTextPrimitives-FTE
[スタイル(名前=「focusedTextSelectionColor」、タイプ=」 UINT」、形式= "色" は、継承= "YES")]
=[スタイル(名称 "inactiveTextSelectionColor"、タイプ= "UINT"、フォーマットは= "色" は、継承= "YES")]
[スタイル(name = "unfocusedTextSelectionColor"、type = "uint"、format = "Color"、継承= "はい")]
注:
アンカー位置 - 矢印キーで選択範囲を拡張すると固定された選択範囲の終わりを指定する文字インデックス。
アクティブポジション - 矢印キーで選択範囲を拡張するときに移動する選択範囲の終わりを指定する文字インデックス。
これらはすべて唯一の色(またはインデックス)なので、あなたがしたいと思うすべての魅力を得るかどうかはわかりません。私はカスタムテキスト選択コントロールを扱うためにFlex 3の何かに取り組み、画面上にあるものと同じプロパティを持つTextFieldを配置した後、文字を1つずつダンプした「オフスクリーンバッファ」を使用して終了しました私が所望の幅に達するまで、キャラクターの中でコントロールがドロップされた場所(アンドロイドのようなもの)を把握することができました。
私はあなたが持っているSDKの上記のスタイルを検索することをお勧めします(特にRichEditableTextとそのスーパークラスでは、これを行うでしょうが、そこにかなりのバージョンがあり、とFTEの両方が少し流動しているように見えます)。これらのスタイルが使用されている場所を見つけたら、おそらく選択インジケータの描画コードの近くにあり、適切なメソッドをオーバーライドするためにどのクラスから拡張する必要があるでしょう。
申し訳ありませんが、私はあなたにまっすぐな答えを与えることはできませんが、うまくいけば、これは役立ちますか、簡単な方法があれば他の誰かがチャイムインすることができます。
shaun
- 1. Adobe Photoshop Scripting - 現在の選択範囲の境界ボックスを選択する方法
- 2. 現在の選択範囲をHTMLフォームにフォーカスするにはどうすればよいですか?
- 3. 日付範囲パラメータ - レコード選択範囲の境界を含む
- 4. 選択したセルより下の範囲を選択するにはどうすればよいですか?
- 5. 現在の選択範囲を含むDOM要素を取得するにはどうすればよいですか?
- 6. 現在の潜在的な境界を取得しますか?
- 7. ブートストラップ日付範囲選択ツールで選択した日付の日数を取得するにはどうすればよいですか?
- 8. 球の範囲内で選手の境界を設定する
- 9. Outlook VBA - 現在カレンダーで選択されている時間範囲にアクセスするにはどうすればよいですか?
- 10. jQueryの使用方法行の範囲を選択するにはどうすればよいですか?
- 11. UIWebViewでユーザーの選択範囲を変更するにはどうすればよいですか?
- 12. 選択したウェブページの範囲をイメージに保存するにはどうすればよいですか?
- 13. 範囲から乱数をランダムに選択するにはどうすればよいですか?
- 14. 元気なテキスト3で選択範囲を取り消すにはどうすればいいですか?
- 15. 選択したアイコンをselect2の選択ボックスに表示するにはどうすればよいですか?
- 16. cellForRowAtIndexPathからtextFieldの境界線を取得するにはどうすればよいですか?
- 17. winformでスプリッタコンテナバーセパレータの境界線幅を取得するにはどうすればよいですか?
- 18. 選択したテキスト範囲でクラス属性を削除するにはどうすればよいですか?
- 19. DataGridComboBoxColumnで選択範囲を設定するにはどうすればよいですか?
- 20. C#で日付範囲を選択するにはどうすればよいですか?
- 21. Places.GeoDataApi.getAutocompletePredictionsを境界内にのみ取得するにはどうすればよいですか?
- 22. 現在のマップビューの範囲を取得する方法は?
- 23. Gnuplotに境界の色で範囲外のマトリックスポイントを「塗りつぶす」ようにするにはどうすればよいですか?
- 24. は、どのように私は(onClickのようですが、ドラッグ/選択)日付範囲を選択する
- 25. 日付の範囲から日時のリストを取得するにはどうすればよいですか?
- 26. 静的なGoogleマップの境界を取得するにはどうすればよいですか?
- 27. どのようにAngular2で選択ボックスのクリックイベントを取得
- 28. mysqlテーブルで現在の月の日付範囲を選択するにはどうすればいいですか?
- 29. 範囲スライダの現在の値はどのように取得できますか?
- 30. スピナーの現在の範囲を取得しますか?