-
12-09-2019 - |
문제
이미지를로드하여 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가 안정적이지 않기 때문입니다.
해결책
그만큼 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 계층 내부의 주석 코드를 참조하십시오. 주석화 된 코드는 다른 도메인에서 이미지의 스케일을 조작하려고하는 원인으로 인해 실패합니다. 코드 후 코드는 이미지가 아닌 로더의 스케일을 조작합니다