2011-11-22 3 views
1

Action Script 2.0에서 만든 간단한 그림 뷰어에 대한 코드를 AS3에서 동일한 작업으로 변경했습니다. 현재 .loadMovie 명령이 더 이상 사용되지 않는다는 것을 잘 알고 있습니다. 해결책을 찾기 위해 수많은 시도를 한 후에 나는 마른 상태로 왔습니다.Action Script 3 new loader

무대에 무비 클립 심볼 (target_mc)이 있는데, mouseOver 버튼을 누르면 외부 파일에서 jpeg를로드하려고합니다. 어느 누구도 "새로운로드"변수를 사용하여 어떻게 접근해야하는지에 대한 예를들 수 있습니까? AS2 버전에서는 단추 코드에서 (릴리스시)도 사용했습니다.

training_btn은 버튼 인스턴스입니다.

아래 내 코드의 예를 참조하십시오

training_btn.addEventListener(MouseEvent.CLICK, imageOver); 
function imageOver(evt:MouseEvent) {  
    this.target_mc.loadMovie("galleryimage/p_traininglink.jpg") 
} 

어떤 아이디어가 매우 도움이 될 것입니다.

웨인

답변

1

엡 그래서

training_btn.addEventListener (MouseEvent.MOUSE_UP, onMouseUp); 

function onMouseUp (evt:MouseEvent):void { 
    var my_loader:Loader = new Loader(); 
    my_loader.load(new URLRequest("myPhoto.jpg")); 
    target_mc.addChild(my_loader); 

} 
0

의 laoder의 기본적으로 전체 구조를 작동하는 방법에 대한 훌륭한 단계별 튜토리얼 AS 2와 3 사이에서 변경되었습니다.

이제 콘텐츠를로드하는 다른 개체를 만들어야합니다.

var loader:Loader = new Loader(); 

당신은 두 가지를 할 수있는 것보다 :

  1. 추가 이벤트 리스너를 부하
  2. 트리거 부하를 유발하고 무대

의 차이에 로더를 추가하는 것보다 이 두 스타일은 크다. 첫 번째는 청취자를 추가하고로드가 완료 될 때까지 기다린 후 청취자가 정의한 메소드를 호출하여 이후의 모든 기능을 수행한다. 두 번째 것은 내용로드를 시작하고 컨텐츠를로드 할 때 자동으로 표시되도록 로더를 표시 목록에 추가합니다.

1.

// add the listener 
laoder.contentLoaderInfo.addEventListener(Event.Complete, onLoadComplete); 
// trigger the load (remember: the url is alwais a URLRequest object) 
loader.load(new URLRequest("path_to_file")); 
// additional var for storing the content (only the content, without the loader) 
var content:Bitmap; 

function onLoadComplete(e:Event):void{ 
content = e.target.content as Bitmap; 
// you could use also: 
// content = loader.content as Bitmap; 

// you can do some modifications before displaying the content 

// and finally add it to the display list 
this.target_mc.addChild(content); 
} 

2)

// trigger the load (remember: the url is alwais a URLRequest object) 
loader.load(new URLRequest("path_to_file")); 

this.target_mc.addChild(loader); 

두 가지 방법이 정확하지만 난 당신에게 더 많은 설정 제어를 제공 원인 첫 번째를 사용하여 선호합니다. ProgressEvent.PROGRESS를 청취하여로드 진행률을 확인할 수도 있습니다.

그것이 도움이되기를 바랍니다. 외부 데이터로드에 대한 자세한 정보는 google에서 검색하십시오. 이에 대한 많은 참고 자료가 있습니다.

0

그것은 아마 가장이 모든 것을 처리 할 클래스를 만들 것이다,하지만 귀하의 질문에 대답하기 위해, 당신의 코드는 같은 보일 것이다 :

var outLoader:Loader = new Loader(); 
outLoader.load(new URLRequest("outImage.jpg")); 

var overLoader:Loader = new Loader(); 
overLoader.load(new URLRequest("overImage.jpg")); 
overLoader.visible = false; 

var training_btn:Sprite = new Sprite(); 
training_btn.addChild(outLoader); 
training_btn.addChild(overLoader); 
training_btn.buttonMode = true; 
training_btn.mouseChildren = false; 
training_btn.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); 
training_btn.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler); 
addChild(training_btn); 

function rollOverHandler(e:MouseEvent):void { 
    overLoader.visible = true; 
} 

function rollOutHandler(e:MouseEvent):void { 
    overLoader.visible = false; 
} 
관련 문제