0

event.RESIZE がスローされたときに、さまざまな解像度に合わせて動的にスケーリングしたくないフラッシュ アプリケーションにリスト コンポーネントがあります。

実際のリストのスケーリングは簡単です。リストを最小予想解像度の静的サイズに設定し、現在の解像度と最小解像度の比率として拡大できます。何かのようなもの:

if(stage.stageWidth > MIN_WIDTH_RESOLUTION)
    m_list.width = MIN_LIST_WIDTH * (stage.stageWidth / MIN_WIDTH_RESOLUTION)

高さについても同様です。

問題は、リスト内の textField から発生します。テキストはリストに合わせてスケーリングされていません。これを処理する組み込みの ActionScript の方法はありますか?

上記のコード スニペットと同様に、textFields の fontSize とリストの rowHeight を最小比率で設定して、手動で実行しようとしました。テキストのサイズは 1 つの次元から単純に決定できないため、問題が発生しました。ステージの幅が増えたときにフォントのサイズを大きくすると、フォントの高さも大きくなります。

これが私が知らない方法でactionscriptによって内部的に処理できれば素晴らしいことですが、そうでない場合は、これを手動で処理する方法に関するヒントや方程式をいただければ幸いです。

4

1 に答える 1

0

リストの transform プロパティを使用して、リスト (およびその子) をスケーリングまたはサイズ変更できます。あなたがする必要があるのは、スケーリング計算を行い、それをマトリックスに割り当ててから、そのマトリックスを変換に割り当てることです。

例: mlistがリストと行列の場合、

mlist.transform.matrix = matrix;

次のリンクは、マトリックスの設定に役立ちます

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html

この情報はまさにあなたが欲しいものだと思います。

于 2012-09-10T08:30:42.657 に答える