コンポーネントがあり、グローバル アプリケーション コード内から scrollRect を設定しようとしています。
関数を次のように定義すると
public function foo():void{ obj.scrollRect = new Rectangle(blah,blah,blah,blah); }
scrollRect は適用されず、ビューポートも変更されません。
ただし、そのコンポーネント内でイベントを設定し、関数定義から public を削除すると、期待どおりに動作します。
プログラムでコンテンツをスクロールする必要があります
この関数は、段階的なスクロールで期待どおりに機能します。
function mouseClickNext(event:MouseEvent):void{
var sum:Number = bookmark_navigator.width -x_holder;
if( sum<= 310)return;
if(bookmark_navigator.width >= 310){
var obj:Rectangle = bookmark_navigator.scrollRect;
var setWidth:Number = bookmark_navigator.numElements * 28;
if(x_holder + 40 >= bookmark_navigator.width)
x_holder=bookmark_navigator.width;
else x_holder += 40;
bookmark_navigator.scrollRect = new Rectangle(x_holder,0,bookmark_navigator.width,30);
}
}
ただし、この関数は次のことを行いません。
var np:Number = 0;
public function check():void{
return;
np= 0;
while(true){
try{
var sum:Number = bookmark_navigator.width -np;
if( sum<= 310)break;
np += 40;
}catch(e:Error){break;}
}
bookmark_navigator.scrollRect = new Rectangle(np,0,bookmark_navigator.width,30);
}
リターンは、テストの手段として追加されました。