안녕하십니까. 고마워요. 나는 너무 많은 시간을 보냈다.actionscript를 사용하여 로더 언로드 3
아래 코드는 네 이미지의 슬라이드 쇼와 이미지의 미리보기 이미지를로드합니다. 그것은 잘 작동합니다.
"invis_button"이라는 버튼을 추가했습니다. 눌렀을 때 각 로더에 대해 removeChild 명령을 사용하여 슬라이드 쇼를 구성하는 3 개의 로더를 제거해야합니다.
하지만 문제는 슬라이드 쇼에 3 명의 로더가 관련되어 있다는 것입니다. removeChild 명령은 다른 하나 ("container3"및 "thumbLoader3")가 아닌 "loader3"이라는 이름의 로더 중 하나를 성공적으로 제거합니다. "정의되지 않은 속성 thumbLoader3 액세스"또는 "컨테이너 3"액세스 오류를 반환합니다.
누군가이 이유를 말해 줄 수 있습니까? 또는 더 나은 방법으로, 해당 버튼 (invis_button)을 전체 슬라이드 쇼를 언로드하는 방법. 이것은 당신이 관찰하는지 뒤에 전체 이유는 ...하지만 우선, "thumbloader3"와 "container3는"당신이 완료되면 의미 loadThumbs3() 메소드에 로컬로 범위 경우
var images3:Array = ["ad_bona1.jpg", "ad_bona2.jpg", "ad_darkhawk1.jpg", "ad_darkhawk2.jpg"];
var thumbX3:Number = -375;
var thumbY3:Number = 220;
var loader3:Loader = new Loader();
loader3.load(new URLRequest("assets/ad_bona1.jpg"));
addChild(loader3);
loader3.alpha = 0;
loadThumbs3();
function loadThumbs3():void
{
var thumbLoader3:Loader;
var container3:Sprite = new Sprite();
addChild(container3);
container3.buttonMode = true;
for(var i3:uint = 0; i3 < images3.length; i3++)
{
thumbLoader3 = new Loader();
thumbLoader3.load(new URLRequest("assets/thumbs/" + images3[i3]));
thumbLoader3.x = thumbX3;
thumbLoader3.y = thumbY3;
thumbX3 += 85;
container3.addChild(thumbLoader3);
thumbLoader3.addEventListener(MouseEvent.CLICK, thumbClicked3);
}
}
function thumbClicked3(event:MouseEvent):void
{
var path3:String = event.currentTarget.contentLoaderInfo.url;
path3 = path3.substr(path3.lastIndexOf("/") + 1);
loader3.load(new URLRequest("assets/" + path3));
}
///PROBLEM BELOW, button removes only "loader3" and not the other two for some reason
invis_button.addEventListener(MouseEvent.CLICK, unload_loaders);
function unload_loaders(event:MouseEvent):void{
removeChild(loader3);
removeChild(thumbLoader3);
removeChild(container3);
}
응답을 얼마나 좋아하는지 말할 수 없습니다. 나는 as3에 상당히 익숙하다.이 객체들을위한 클래스 레벨 속성을 생성하는 데 사용할 수있는 코드가 있는가? – Steve
위의 내 게시물을 수정 한 버전의 코드를 포함하도록 수정했습니다. – greatdecay