2008-09-11 8 views
0

XMLがロードされた後に作成されるクラスのインスタンス内の動的テキストフィールドにUIScrollbarコンポーネントのインスタンスをアタッチしようとしています。スライダのサイズはテキストフィールド内のコンテンツの量によって異なりますが、スクロールバーコンポーネントは正しく取り付けられていますが、スクロールしません。クラス内のUIScrollBarコンポーネントのスクロールに関する問題

ここでコードは次のとおりです。

function xmlLoaded(evt:Event):void 
{ 
    //do some stuff 

    for(var i:int = 0; i < numProfiles; i++) 
    { 
     var thisProfile:profile = new profile(); 

     thisProfile.alpha = 0; 
     thisProfile.x = 0; 
     thisProfile.y = 0; 
     thisProfile.name = "profile" + i; 

     profilecontainer.addChild(thisProfile); 

     thisProfile.profiletextholder.profilename.htmlText = profiles[i].attribute("name"); 
     thisProfile.profiletextholder.profiletext.htmlText = profiles[i].profiletext; 

     //add scroll bar 
     var vScrollBar:UIScrollBar = new UIScrollBar(); 
     vScrollBar.direction = ScrollBarDirection.VERTICAL; 
     vScrollBar.move(thisProfile.profiletextholder.profiletext.x + thisProfile.profiletextholder.profiletext.width, thisProfile.profiletextholder.profiletext.y); 
     vScrollBar.height = thisProfile.profiletextholder.profiletext.height; 
     vScrollBar.scrollTarget = thisProfile.profiletextholder.profiletext; 
     vScrollBar.name = "scrollbar"; 
     vScrollBar.update(); 
     vScrollBar.visible = (thisProfile.profiletextholder.profiletext.maxScrollV > 1); 

     thisProfile.profiletextholder.addChild(vScrollBar); 

     //do some more stuff 
    } 
} 

私もムービークリップ/クラス自体の中にUIScrollBarコンポーネントでそれを試してみた、それはまだ動作しません。何か案は?

答えて

0

UIスクロールバーをステージに配置し、デザイン時にテキストフィールドにバインドしてから、ロードされたイベント中にupdate()を呼び出してみましたか?

興味深いの経験があり、実行時に動的にUIScrollbarsを作成していました。あなたの最初の例で

0

あなたは addChild(vScollbar);vScrollBar.update(); 声明を入れて試してみましたか?

2

あなたのテキストフィールドがこれに似た別の関数から初期化されると、スクロールバーを追加してみてください:私は現在、それをやってどのよう

private function assignScrollBar(tf:TextField, sb:UIScrollBar):void { 
    trace("assigning scrollbar"); 
    sb.move(tf.x + tf.width, tf.y); 
    sb.setSize(15, tf.height); 
    sb.direction = ScrollBarDirection.VERTICAL; 
    sb.scrollTarget = tf; 
    addChild(sb); 
    sb.update();   
} 

です。