문제
XML 파일에서 이미지를 동적으로로드하는 플래시 영화가 있습니다. 다른 페이지 에서이 .swf 파일을 재사용하고 싶지만 Page1의 이미지는 모두 400 x 200이고 Page2의 이미지는 모두 745 x 422입니다. 다른 페이지에서 재사용하려고 할 때로드 된 이미지가 줄어 듭니다. (크기 조정) - 너비/높이에 정의 된 내용과 일치하기를 원하지만 스테이지의 스케일링 방식에 따라 스케일링됩니다.
컨테이너 (Sprite)에 배치하는 이미지에 로더 (AS3)를 사용하고 있습니다.
slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
나는 다양한 크기를 시작하기 위해 무대를 만들려고 노력했지만 가능한 경우 관련이 있기를 원합니다 - 예 : 50 x 50. HTML에서는 폭/높이가로드되는 이미지의 너비/높이로 설정됩니다.
나는 플래시 마법사가 아니므로 분명하지 않으면 용서 해주세요. 필요한 경우 더 많은 통찰력을 줄 것입니다.
해결책
몇 가지 사항 ... 첫째, 앱을 규모로 규모하지 않도록 지정해야합니다. (AS3 코드)
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
그런 다음 이미지가로드되면 (Slideloader 객체에 리스너를 추가) Flash의 외부 인터페이스 클래스를 사용하여 JavaScript 함수를 실행하십시오.
ExternalInterface.call('resizeFlashMovie', slideLoader.width, slideLoader.height);
JavaScript 기능은 다음과 같습니다.
function resizeFlashMovie(width, height) {
var flash = document.getElementById('yourFlashMovieId');
flash.style.width = width+'px';
flash.style.height = height+'px';
}
다른 팁
당면한 코드가 없다고 사과드립니다. 그러나 스타트 업 캔버스에 대한 상환을 설정할 수있는 옵션이 있다는 것을 알고 있습니다.
이상적으로는 임베드 태그의 속성을 통해 높이/너비를 전달할 수 있고, 캔버스에 크기를 조정하지 않고 전달 된 치수를 사용하여 이미지 크기를 설정합니다.
나는 이것이 바로 그것을 믿는다 :
fscommand("allowscale","false");