2012-09-04 2 views
1

라이브러리의 무비 클립을 스테이지의 무비 클립에 추가하고 싶습니다.AS3 - 라이브러리의 Addchild

TypeError: Error #1034: Type Coercion failed

내가 변경해야 :

function setMc(con:Sprite,mc:Sprite):void 
{ 
    con.addChild(mc) 
    mc.x=mc.width/2 
    mc.y=mc.height/2 
}   

setMc(myholder,mylibrarymc) 

나는이 오류가?

+0

전체 오류를 붙여넣고 오류를 throw하는 구문을 알려주십시오. – Florent

답변

3

라이브러리에는 실제 객체가 아닌 프로토 타입 만 포함되어 있습니다. "mylibrarymc"는 라이브러리에있는 MC 유형의 이름이라고 가정합니다. 이 경우 "mylibrarymc"는 다르게 사용되는 Class 유형입니다.

function setMc(con:Sprite,mc:Class):void 
{ 
    var newMC:DisplayObject=new mc() as DisplayObject; 
    // Here you actually make an object out of a class 
    con.addChild(newMC); 
    newMC.x=newMC.width/2; 
    newMC.y=newMC.height/2; 
}   

setMc(myholder,mylibrarymc); 

희망이 있습니다. 내가 도서관을 손재수를 쓴 데는 꽤 오랜 시간이 걸렸습니다.

1

함수가 Sprite를 필요로하므로 아마도 MovieClip을 전달할 것입니다. 라이브러리에서 mc를 오른쪽 클릭 할 때 사용하는 "actionscript 내보내기"옵션을 살펴보십시오.

0

라이브러리에서 개체를 마우스 오른쪽 단추로 클릭하고 '속성'으로 이동하십시오. "ActionScript 용 내보내기"상자에 체크 표시가되어 있는지 확인하고 적절한 이름을 지정하십시오. 심볼에 지정한 클래스 이름은 코드 자체에 해당 유형의 객체를 만드는 데 사용됩니다. 예를 들면 다음과 같습니다.

클래스 이름이 "Player"인 ActionScript의 심볼을 내 보냅니다. 액션 스크립트 파일에서

:

var player = new Player(); 
addChild(player); 

당신은 영화 클립 멤버 함수 (위치, 알파) 중 하나를 사용하여 객체를 조작하고 상호 작용하기 위해 이벤트 리스너를 할당 할 수 있습니다.