1

最初はデータグリッドのみを含むFlexのDividedBoxを使用しています。データグリッドのアイテムをクリックすると、幅0%の2番目の要素(スパークグループ)が分割されたボックスに追加され、画像が表示されます。

つまり、2番目の要素がDividedBoxに追加されると、画像はDividedBoxの外側に部分的に表示されるため、この動作は望ましくありません。

ここに興味深いコードがあります:

<mx:DividedBox direction="horizontal" id="divider" borderColor="red" borderStyle="solid" borderVisible="true" right="10" left="10" top="10" bottom="10">
    <s:Group width="100%" height="100%">
        <!--datagrid-->
    </s:Group>
</mx:DividedBox>

そして、これがdividedBoxの2番目の子を追加するコードです(簡略化されたコード):

private var _pdf_preview:Group = new Group();
[Bindable]
[Embed(source="assets/image/llama.jpg")]
private var imgClass:Class;

protected function itemOnClickHandler(event:MouseEvent):void
{
    _pdf_preview = new Group();
    var img:Image = new Image();
    img.source = imgClass;
    _pdf_preview.addElement(img);
    _pdf_preview.percentWidth = 0;
    divider.addElement(_pdf_preview);
}

そしてここに問題の画面があります(ところで、Gimpの私のスキルに気づかないでください:))。新しいユーザーとして、画像を投稿にバインドできません:問題を示す画面赤い境界線はdividedBoxの制限を示しています

ありがとうございました。英語は私の母国語ではありません。英語の間違いでごめんなさい。

PS:「DividedBox」タグは以前は存在していなかったため追加できませんでした。また、私は「新規ユーザー」であるため、新しいタグを作成できません。

4

1 に答える 1

1

このプロパティを使用してclipContent、DividedBoxの端にある画像を切り取ることができます。

<mx:DividedBox clipContent="true" />

Sparkコンテナを使用する場合clipAndEnableScrolling、同じ目標を達成するために必要なプロパティです。

また、通常、ActionScriptを介してコンポーネントを動的に追加する必要はありません。代わりに「状態」を使用できます。例えば:

<s:states>
    <s:State name="normal" />
    <s:State name="image" />
</s:states>

<mx:DividedBox clipContent="true">
    <s:DataGrid />
    <s:Image includeIn="image" />
</mx:DividedBox>

これで、画像を表示するために必要なことは、に設定さcurrentStateimageます。

于 2012-06-28T10:06:44.530 に答える