728x90
반응형
플래시는 참 재미 있는 프로그램 툴인 언어라고 생각합니다.
시각적인 효과가 충분하죠.
그렇지만 보안의 문제로 인해 요즘은 많은 환경에서 플래시 지원을 하는데 보수적인 경향을 보입니다.
그래도 재미 있는 효과는 한번쯤은 해볼 수 있겠지요?
플래시의 액션스크립트를 드래그 앤 드랍 하는 샘플 소스의 전체를 공유 합니다.
바로 복사해서 돌려보고 주석과 내용들을 확인하며 공부해 보세요~
drag&drop
//mcA1, mcA2, mcB1, mcB2로 구성된 Drag & Drop
_global.muntl=this;
var dragMc = 2;//갯수
var swapDepths = 0;//창 위로
var posArr = [dragMc];//mcB에 올려진 mcA의 정보
function init(){
for(i=1; i<dragMc+1; i++){
saveArr[i-1] = 0;//배열 초기화
posArr[i-1] = 0;//배열 초기화
//좌표
_global["x"+i] = muntl["mcA"+i]._x;
_global["y"+i] = muntl["mcA"+i]._y;
muntl["mcA"+i].onPress = function(){//클릭시
_global.NameChk = this._name.charAt(3);//숫자만 가져오기
this.startDrag();
this.swapDepths(swapDepths++);
}
muntl["mcA"+i].onRelease = muntl["mcA"+i].onReleaseOutside = function(){//마우스 땔대
_global.hitTest = false;
this.stopDrag();
for(j=1; j<dragMc+1; j++){
//hitTest
if( (muntl["mcA"+_global.NameChk].hitTest(muntl["mcB"+j])) && (posArr[j-1] == 0) ){
//for:hit 된 것이 있으며 중복으로 drop되어 있는게 없으면
_global.hitTest=true;
posArr[j-1] = _global.NameChk;//mcB에 올려진 mcA의 정보
muntl["mcA"+_global.NameChk]._x = muntl["mcB"+j]._x;
muntl["mcA"+_global.NameChk]._y = muntl["mcB"+j]._y;
}else if( posArr[j-1] == _global.NameChk ){//for:hit 된게 없음
//for: 돌면서 _global.NameChk이름으로 들어간 배열 확인해서 없애기
_global.hitTest = false;
posArr[j-1] = 0;//mcB에 올려진 정보 초기화
}
}
if( _global.hitTest != true ){
muntl["mcA"+_global.NameChk]._x = _global["x"+_global.NameChk];
muntl["mcA"+_global.NameChk]._y = _global["y"+_global.NameChk];
}
}
}
}
function resultValue(){//결과값 확인
for( k=1; k<dragMc+1; k++ ){
trace(posArr[k-1]);
}
}
init();
_global.muntl=this;
var dragMc = 2;//갯수
var swapDepths = 0;//창 위로
var posArr = [dragMc];//mcB에 올려진 mcA의 정보
function init(){
for(i=1; i<dragMc+1; i++){
saveArr[i-1] = 0;//배열 초기화
posArr[i-1] = 0;//배열 초기화
//좌표
_global["x"+i] = muntl["mcA"+i]._x;
_global["y"+i] = muntl["mcA"+i]._y;
muntl["mcA"+i].onPress = function(){//클릭시
_global.NameChk = this._name.charAt(3);//숫자만 가져오기
this.startDrag();
this.swapDepths(swapDepths++);
}
muntl["mcA"+i].onRelease = muntl["mcA"+i].onReleaseOutside = function(){//마우스 땔대
_global.hitTest = false;
this.stopDrag();
for(j=1; j<dragMc+1; j++){
//hitTest
if( (muntl["mcA"+_global.NameChk].hitTest(muntl["mcB"+j])) && (posArr[j-1] == 0) ){
//for:hit 된 것이 있으며 중복으로 drop되어 있는게 없으면
_global.hitTest=true;
posArr[j-1] = _global.NameChk;//mcB에 올려진 mcA의 정보
muntl["mcA"+_global.NameChk]._x = muntl["mcB"+j]._x;
muntl["mcA"+_global.NameChk]._y = muntl["mcB"+j]._y;
}else if( posArr[j-1] == _global.NameChk ){//for:hit 된게 없음
//for: 돌면서 _global.NameChk이름으로 들어간 배열 확인해서 없애기
_global.hitTest = false;
posArr[j-1] = 0;//mcB에 올려진 정보 초기화
}
}
if( _global.hitTest != true ){
muntl["mcA"+_global.NameChk]._x = _global["x"+_global.NameChk];
muntl["mcA"+_global.NameChk]._y = _global["y"+_global.NameChk];
}
}
}
}
function resultValue(){//결과값 확인
for( k=1; k<dragMc+1; k++ ){
trace(posArr[k-1]);
}
}
init();
반응형
LIST
'전공 > 실무' 카테고리의 다른 글
[Nodejs] 소켓(socket.io) 연동 (0) | 2018.04.03 |
---|---|
Nodejs 외부모듈 (0) | 2018.02.08 |
[flash]flash.external.ExternalInterface.call, 함수 (0) | 2012.12.06 |
[flash] 기타 tip (0) | 2012.12.06 |
[as3.0] URLRequest (0) | 2012.12.06 |