var test:*;
test = sMC // Some movieClip exported for ActionScript
var f = new test;
죄송합니다. 질문에 약간의 변화가 있지만 궁금해지기 시작하면,이 별표와 스 니펫은 무엇을 의미합니까?별표 유형의 변수
var test:*;
test = sMC // Some movieClip exported for ActionScript
var f = new test;
죄송합니다. 질문에 약간의 변화가 있지만 궁금해지기 시작하면,이 별표와 스 니펫은 무엇을 의미합니까?별표 유형의 변수
별표는 변수 유형이 정의되지 않았 음을 의미하거나 와일드 카드입니다. 어떤 종류의 변수로 test
을 정의 할 수 있습니다.
별표 변수는 정보의 모든 유형을 받아 들일 것을 의미 와일드 카드입니다 :
원래의 질문과 코멘트에 요청 귀하의 질문에 대답. 예 :
var wildcard:*;
wildcard = "hello";
wildcard = 10;
wildcard = new MovieClip();
위의 모든 내용이 적용됩니다.
변수는 가능한 한 엄격하게 입력해야합니다. 이 말은 무비 클립을 변수에 지정하려고 할 때 변수가 MovieClip으로 입력되어야한다는 것을 의미합니다. 좋아요 :
var mc:MovieClip = new MovieClip();
이것은 모든 작업에 적용됩니다. 자신 만의 클래스를 생성 한 경우 클래스를 보유하는 변수의 유형으로 해당 클래스를 사용하십시오.
당신이 시도하고 그래서 같이 변수에 관련되지 않은 유형을 지정하면 오류가 발생합니다var thing:MyClass = new MyClass();
: 한 당신의 변수 유형이 무엇을 상속 체인을 따라 어딘가로
var thing:MovieClip = "hello";
을하지만, 그것에 배정되면, 그것은 효과가있을 것입니다.
var thing:DisplayObject = new MovieClip();
MovieClip을 확장하는 고유 한 클래스 모음을 포함하는 배열을 반복하려는 경우이 방법이 유용 할 수 있습니다.
var ar:Array = [];
/**
* MyClass extends MovieClip
* MyOtherClass extends MovieClip
*/
ar.push(new MyClass());
ar.push(new MovieClip());
ar.push(new MyOtherClass());
var i:MovieClip;
for each(i in ar)
{
trace(i);
}
전체적으로 와일드 카드 유형은 권장 사항이 아닙니다. 최악의 경우 Object
을 플래시의 모든 요소로 확장합니다. 와일드 카드 또는 Object가 유용한 한 가지 상황은 모든 종류의 데이터를 허용 할 수있는 함수를 작성하려는 경우입니다. 그래서 같이 :
var myarray:Array = [];
function addToArray(data:Object):void
{
myarray[myarray.length] = data;
trace(data);
}
또는
function addToArray(data:*):void
{
myarray[myarray.length] = data;
trace(data);
}
희망이 모두 의미가 있습니다.
그래서 MovieClips 전용이 아닙니까? 그렇다면이 방법만으로도 무비 클립에 변수를 할당 할 수 있습니까? sMC는 MovieClip의 이름입니다 ... – Rek
'클래스'유형에 할당 할 수 있어야합니다. 나는 그것이 비교적 효과적 일 것이라고 확신한다. 그래서'var test : Class; – stormbreaker