if 문에서 변수 비교 관련
오미자
function ishit(card) {trace(card);
trace([_level0.card+pos_arr[0]]);if (card == [_level0.card+pos_arr[0]]) {
card._x = con3_mc._x+con3_mc.target1._x;
card._y = con3_mc._y+con3_mc.target1._y;
return true;
} else if (card == [_level0.card+pos_arr[1]] && card.hitTest(con3_mc.target2)) {
card._x = con3_mc._x+con3_mc.target2._x;
card._y = con3_mc._y+con3_mc.target2._y;
return true;
}
return false;}
간단한 함수를 만들어서 테스트하는데 card의 변수로는 무비심볼에서 this를 넣어줬습니다.
if문의 양변의 trace문으로 출력해보면 동일한데...
어째서 변수로 둘을 비교했을때는 true가 나오지 않는 것인지 궁금합니다.
_level0.card3
_level0.card3
출력결과 입니다.
-
진나
수다님 감사합니다/// 덕분에 해결했습니다. ㅠ 갤러리얼님과 수다님도 감사해요. 아 너무 기뻐요/// ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
아놀드
아... 그르네. 저의 댓글은 패스해주삼. ㅋㅋㅋㅋㅋㅋ
-
모두가람
card는 무비클립이고 [\_level0.card\+pos_arr[0]]는 Array이니까 비교했을때 false입니다.
[]연산자를 잘 못 사용해서 그런데요, _level0[\card\+pos_arr[0]] 이렇게 사용해야 생각하는 결과가 나올거에요 -
이치코
즉~ 위에 작성하신 if (card == [\_level0.card\+pos_arr[0]]) {} 이부분은
if (_level0.card3==\_level0.card3\) 이렇개 비교 하신겁니다~ 그러니 결과값이 false가 나오죠~ -
무크
데이타 타입이 다른것 같은데요??
trace(card); === 무비클립
trace([\_level0.card\+pos_arr[0]]); === 배열
출력되는 글자 _level0.card3 의 생김새만 같을뿐 전혀 다른겁니다~
아래처럼 바꿔보세요~
trace(card); === 무비클립
trace(_level0[\card\+pos_arr[0]]); === 무비클립 -
고딩
더 신경 쓰자면 무비클립인지 비교도 병행하여...
-
날애
음... 무비클립에 대한 비교는... 좀 더 명확히 하시는 것이 어떨까요.
if (card._name == [\_level0.card\+pos_arr[0]]._name) { ....... }
어차피 같은 name을 가지고 있는듯한데...