ActionScript 3:Flash Embedでの焦点の喪失に関するテキストアレアの維持uiscrollbarの位置

StackOverflow https://stackoverflow.com/questions/3964288

質問

フラッシュCS4を使用しています。 CS4がSWFをコンパイルした後、SWFをプレビューするときに、すべてが機能します。

ただし、FlashアイテムをWebページに埋め込んだ後、TextareaがFlashピース内に焦点を失った場合、Textareaの組み込みのUiscrollbarが最上部にリセットされます。

キッカーは次のとおりです。Focos_outEventリスナーをTextareaに追加して現在のScrollbar値を保存すると、Focus_outイベントがトリガーされる前でもScrollbar値が最小にリセットされていることがわかります。 wtf?

Textareaのhtmltextプロパリーが動的に人口がかかっているため、これが発生していると思います。 Adobe AirにはHTMLを渡すための高度な方法がありますが、単純ではありません。なんて不快。何ができますか?

役に立ちましたか?

解決

私は自分の質問に答えるとは思っていませんでしたが、ここにあります。 htmltextのことはカナードだったかもしれません。 Scrollbar Jitterは、動的に生成されたコンテンツウィンドウがクリックされている間に焦点が合っている間に発生します。これにより、現在の位置とクリックイベントの下部にスクロールバーがキャプチャし、その情報をフォーカスイベントに渡すかどうかをキャプチャします。 DisplayWindowは、動的に生成されたコンテンツを持つものです。

私はAS3と比較的新しいので、これがコーシャではないかどうかを教えてください。

displayWindow.addEventListener(MouseEvent.ROLL_OUT, handleClick);
function handleClick(event:MouseEvent):void
{
    //here, user has clicked output window
    var currentPosition = displayWindow.verticalScrollPosition;
    var atTheBottom:Boolean = (currentPosition == displayWindow.maxVerticalScrollPosition);
   var focusAdded:Boolean = false;
   displayWindow.addEventListener(FocusEvent.FOCUS_OUT, 
   function handy() {
        //here, user has clicked away from output window  

       if (!focusAdded) {
            if (atTheBottom)
                displayWindow.verticalScrollPosition = displayWindow.maxVerticalScrollPosition;
            else
                displayWindow.verticalScrollPosition = currentPosition;

            focusAdded = true;

        } else {
            displayWindow.removeEventListener(FocusEvent.FOCUS_OUT, handy);
            focusAdded = false;
        }
    }
   );
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top