開いているドロップダウンアイコンの特定の領域をクリックすると、ポップアップ領域を自動的に閉じるSpark ComboBoxがあります。私は完全に動作するこのポップアップの隣に座っているコンボボックスを持っている。ドロップダウンボタンの特定の領域をクリックするとすぐにコンボボックスが閉じます
最初のポップアップは、フォントのリストです。 2番目はフォントサイズのリストです。
フォントコンボボックスにシステムフォントのリストを入力するときに問題が発生していることに気付きました。配列には900のフォントがあります。この前に、フォントリストは10個のフォントで埋められました。それは10フォントで正常に動作します。
フォントコンボボックスは吹き出しにありますが、2番目のコンボボックスがうまく動作するので問題はないようです。
開いているドロップダウンボタンの中央を右クリックすることで、毎回閉じるポップアップ領域を再現することができます。ボタンの上または下をクリックすると、正常に動作します。
何が起こっているのか推測しなければならないのであれば、アイテムの量によってポップアップの位置が通常よりも長くなり、一時的にマウスの下の領域が不明瞭になり、マウスイベントがキャンセルされ、ポップアップ領域がすぐに閉じられます。私には分かりませんが、私は他の何かやそれをどう修正するかを考えることができません。
アプリケーション例:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="windowedapplication1_applicationCompleteHandler(event)">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
s|Scroller {
skinClass: ClassReference("com.flexcapacitor.skins.MinimalScrollerSkin");
}
</fx:Style>
<fx:Script>
<![CDATA[
import mx.collections.ArrayList;
import mx.events.FlexEvent;
protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void
{
var fontList:Array = Font.enumerateFonts(true);
fonts.dataProvider = new ArrayList(fontList);
fontSizes.dataProvider = new ArrayList([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
fonts.selectedIndex = fontList.length-1;
fontSizes.selectedIndex = fontSizes.dataProvider.length-1;
}
public function fontLabelFunction(object:Object):String {
if (object is Font) {
return Font(object).fontName;
}
return object as String;
}
]]>
</fx:Script>
<s:HGroup verticalCenter="0" horizontalCenter="0">
<s:ComboBox id="fonts" labelFunction="fontLabelFunction"/>
<s:ComboBox id="fontSizes"/>
</s:HGroup>
</s:WindowedApplication>
MinimalScrollerSkinと、大きなデータセットを使用して、矢印のエリアドロップダウンに正確にクリックしたときにそれが起こることが表示されます。
コードサンプルを共有して再現してもらえますか? – gbdcool
コード例 –
が追加されました。これはminimalScrollerSkinのバグに起因するようです。 –