2013-08-20 6 views
0

구성 요소가 있고 전역 응용 프로그램 코드 내에서 scrollRect를 설정하려고합니다.플래시 구성 요소 scrollRect를 설정할 수 없습니다.

내가는 scrollRect 적용,도 뷰포트 변경을 수행되지 않습니다

public function foo():void{ obj.scrollRect = new Rectangle(blah,blah,blah,blah); } 

으로 함수를 정의합니다.

그러나 구성 요소 내에서 이벤트를 설정하면 함수 정의에서 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); 
     } 

반환 테스트 수단으로 추가되었습니다.

+0

귀하의 질문에 명확하지 않습니다. 나는 이것이 무엇을 의미하는지 모른다 : "그러나 그 구성 요소 내에서 이벤트를 설정하면 함수 정의에서 일반을 ​​제거하고 예상대로 작동합니다." 어쩌면 예상대로 작동 할 때 수행 할 작업을 보여주는 코드를 추가하거나 "해당 구성 요소 내에서 이벤트를 설정할 때"의미하는 바를 명확히 할 수 있습니다. –

+0

프로그래밍 방식으로 의 내용을 스크롤해야합니다. –

답변

0

Flex를 사용하는 경우 Flex는 자체적으로 스크롤 동작을 구현하므로 scrollRect 속성을 사용하지 않는 것이 좋습니다.

일반적으로 <s:HGgroup><s:Scroller>으로 묶습니다. 스크롤 위치를 조정하려면 ScrollerhorizontalScrollPosition 또는 verticalScrollPosition 속성을 변경할 수 있습니다.

+0

감사! 시도 할 것이다!! –

+0

좋아 ... 와우, 고마워. 그게 내 문제를 완전히 해결했습니다. 이 5 또는 며칠 동안 scrollRect 객체를 구현하려고 노력했습니다 .... 모두 한 줄의 코드가 필요합니다. 감사합니다. –

관련 문제