문제

Actionscript에 일부 XML을 로드한 후 함수를 호출하려고 하는데 해당 함수를 어떻게 호출하는지 궁금합니다.예:

//Function Declarations
function parentFunction()
{
    function callMe()
    {
     textField.text = "lawl";
    }
}

지금, "callMe()" 함수를 어떻게 호출하나요 onRelease 함수와 같이 코드의 다른 부분에 있습니까?

on(release)
{
callMe(); //doesn't work
parentFunction().callMe(); //doesn't work
parentFunction.callMe(); //doesn't work
}

ActionScript 2.0은 정말 이상합니다!어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

parentFunction 내부에서 callMe를 선언해야 합니까?나는 그렇게 가정합니다. 왜냐하면 그렇지 않으면 당신은 그냥 그렇게 할 것이기 때문입니다.

function parent () {} 함수 callme () {}

명확하게 말하면, 해당 함수가 존재할 범위를 제공하지 않는 한 함수는 다른 함수를 소유할 수 없습니다.

따라서 JavaScript에서는 프로토타입 객체를 사용하여 callMe 함수를 parentFunction이 반환한 객체의 메서드로 선언함으로써 이를 수행할 수 있습니다.

http://www.howtocreate.co.uk/tutorials/javascript/objects

ActionScript의 경우 Adobe 웹사이트에서 다음 문서를 읽어보세요.http://www.adobe.com/devnet/flex/articles/as_collections_03.html

편집하다:좀 더 읽어보면 여러분이 작업한 방식이 나타나며 실제로 callMe를 다음과 같이 선언하고 있습니다. 사적인 기능.전체를 구성해야 하는 이 기사를 참조하세요. 비공개/공개 자바스크립트 문제 훨씬 더 이해하기 쉽습니다.

다른 팁

나는 바보입니다.나는 "함수는 다른 함수를 소유할 수 없다"는 사실을 잊어버렸기 때문에 다른 방법을 찾아냈습니다.감사해요!

물론 함수는 다른 함수를 "소유"할 수 있습니다.이것은 ECMAScript입니다. 기억하세요.함수 내부에 변수를 선언하고 함수를 할당하면 됩니다.그런 다음 "call" 메서드를 사용하여 함수를 호출할 수 있습니다.

함수 foo () {trace ( "foo");

var bar = function()
{
    trace("bar");
};

bar.call();

}

foo();

//v--- on the frame
function callMe(){
textArea.text='lawl';
}
//v---- for button
on(release){
callMe();
}

--- or -----

//CUSTOM!!
//v---- on frame
function callMe(say){
textArea.text=say;
}
//v--- for button
on(release){
callMe('lawl');
}

영어가 좋지 않아 죄송합니다. (메뉴-) 버튼에 대한 핸들러를 설정하고 Whitch는 MC에 있습니다.

스테이지의 MC "버튼"(3개의 "testbtn" 포함) @ 첫 번째 프레임:

function SetMethod(Method:Function){
    //trace(Method.call()); 
    //or something like:
    testbtn1.addEventListener(MouseEvent.CLICK, Method);
    testbtn2.addEventListener(MouseEvent.CLICK, Method);
    testbtn3.addEventListener(MouseEvent.CLICK, Method);
}

무대(MC "Butttons" 포함) @ 첫 번째 프레임:

function TheMenuListener(evt:Event):void{
    trace(evt.target.name);

}
...
Buttons.SetMethod(this.TheMenuListener); 

testbtn.name을 반환합니다.

편집하다:아, AS3용이지만 도움이 될 수도 있습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top