문제

이미지를로드하여 MC SOMEMC에 추가합니다. "무언가"가 참이면, 일부 변환은 SOMEMC scalex 번호를 얻습니다. 0.82라고 가정 해 봅시다.

내가 필요한 것은 그 숫자를 슬라이더 객체의 s.Value로 가져 오는 것입니다. 슬라이더 값이 내 이미지 스케일이있는 위치가되기를 원하기 때문입니다.

물론 이것은 다양한 범위 제한으로 인해 작동하지 않습니다.

다음과 같이 코드의 상단에서 변수를 설정하려고 시도했습니다. var somevariable : 숫자; 그러나 그것은 작동하지 않았습니다.

코드는 다음과 같습니다.

function completeHandler(event:Event):void{
     if (something) {
          var someVariable:Number = this.someMC.scaleX;
     }
}   


var s:Slider = new Slider();
s.maximum = 500;
s.minimum = 10;
s.value = someVariable;

이견있는 사람?


업데이트
패키지와 클래스를 사용할 필요없이 솔루션을 찾고 있습니다. 아직 AS3가 안정적이지 않기 때문입니다.

업데이트 2
모든 코드를 페이스트 빈에 업로드했습니다. 구경하다 ;)

도움이 되었습니까?

해결책

그만큼 this 완전한 핸들러에서 문서가 아닙니다. Somemc.scalex 만 사용해보십시오. 메인 타임 라인 또는 어디에 있든이를 접근해야한다고 가정하십시오. Scalex 속성은 또한 0에서 1까지 범위 가므로 슬라이더가 10 : 500 인 경우 작동하지 않습니다. 나는 당신을 위해 * 100을 거기에 넣었지만, 당신이 의도 한 내용에 대한 규모를 고정시키기 위해 필요한 수학을합니다.

또한 핸들러에서 슬라이더의 값을 명시 적으로 설정 한 다음 VAR을 변경해야합니다. 변수는 AS3에서 그렇게 전달되지 않습니다.

function completeHandler(event:Event):void{
         if (something) {
                  var someVariable:Number = someMC.scaleX;
                  s.value = someVariable * 100;
         }
}   


var s:Slider = new Slider();
s.maximum = 500;
s.minimum = 10;

다른 팁

문제는 핸들러 기능에 슬라이더의 위치에 대한 정보가 없다는 것입니다. 그만큼 s 당신이있는 변수는 실제로 글로벌이 없으며, 클래스 또는 movieclip 내에서 로컬입니다. 핸들러가 movieclip 외부의 코드로 실행되면 this 클래스의 메소드를 사용하지 않는 한 컨텍스트.

내가 이것을 할 수있는 가장 좋은 방법은 수업을 사용하는 것입니다. 만들다 s 클래스의 회원 변수로서, 당신의 핸들러는 그것을 사용하여 참조 할 수 있습니다. this. 아래 코드와 같은 작업이 수행해야합니다. 도서관 movieclip에도 연결하십시오.

package {
    import flash.display.MovieClip;

    class MyMovieClip extends MovieClip {
        public var s:Slider;

        public function MyMovieClip {
            var s:Slider = new Slider();
            s.maximum = 500;
            s.minimum = 10;

        }

        function completeHandler(event:Event):void{
            if (something) {
                var someVariable:Number = this.someMC.scaleX;
                this.s.value = someVariable
            }
        }
    }
}

우연히 나는 당신의 질문을 다시 봅니다. (날 기억해?)

다른 도메인에서 이미지를 스케일링하는 대신 로더를 확장 할 수 있으므로 크로스 도메인 보안 문제가 없습니다.

여기에 작동하는 샘플 :http://matrixoft.infunity.com/agent/calvin/stackoverflow/getscale.swf

여기 소스 코드 :http://matrixoft.infunity.com/agent/calvin/stackoverflow/getscale.rar

PS ButtonAction 계층 내부의 주석 코드를 참조하십시오. 주석화 된 코드는 다른 도메인에서 이미지의 스케일을 조작하려고하는 원인으로 인해 실패합니다. 코드 후 코드는 이미지가 아닌 로더의 스케일을 조작합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top