2010-07-25 11 views
0

먼저 수업을 이해하지 못하고 수업을 "호출"하거나 "시작"하는 법을 이해하지 못합니다. 나는 무지한 계급이다.다른 클래스의 변수에 액세스 하시겠습니까?

두 개의 .fla 파일이 있습니다. 내 .fla 파일 중 하나는 15 개 이상의 .as 파일로 구성됩니다. 우리는 이것을 하나의 XML 편집기라고 부를 것입니다. 다른 .fla 파일은 10 개 이상의 .as 파일로 구성됩니다. 우리는 그것을 인터페이스라고 부를 것입니다.

xmleditor.swf는 interface.swf를로드합니다. xmleditor.swf에서 로그인 화면이 나타나고 최종 사용자가 "사용자"또는 "관리자"로 로그인합니다. "user"또는 "admin"은 "userType"이라는 공용 변수에 저장됩니다. userType 변수는 Login.as라고하는 많은 xmleditor.fla .as 파일 중 하나에서 만들어집니다.

일단 로그인하면 xmleditor가 interface.swf를로드합니다. interface.fla는 10 개 이상의 .as 파일을 사용합니다. 하나는 내가 필요 nodeNames.as을 불리는 경우이 같은 것입니다 nodeNames.as에 문 :

if (Login.userType == "user"){ 
    trace("do something"); 
} 

나는 다음과 같은 FlashVars.as 파일이 있지만이 단계가 작동하도록 무엇인지 모른다.

package extras.utils { 
    import flash.display.Sprite; 
    import flash.display.LoaderInfo; 
    /* In AS3, we need to have a display object on the stage to access FlashVars 
     * this class can be used once, and then referenced from anywhere as 
     * FlashVars.data.variableName 
     */ 
    public class FlashVars extends Sprite { 
     public static var data:Object; 

     public function FlashVars() { } 

     public function load():void { //Only needs to be called once 
      data = this.root.loaderInfo.parameters; 
     }  

    } 
} 

이 FlashVars를 사용해야합니까? 그렇다면 어떻게?

변수에 액세스하는 더 쉬운 방법이 있습니까?

+0

왜 이렇게 어려운가? – Phil

답변

0

글쎄, 내가 아는 바로는 Login.as는 수업입니다. 그런 다음 Login.userType 변수에 접근하는 두 가지 방법이있다 : 당신이 Login.userType으로 호출 할 수 있도록하려면, 당신은 다음 액세스가 클래스

public static var userType:String 

정적 일해야합니다 로그인을 가져 오는 동안 응용 프로그램의 어느 곳에서나 Login.userType을 사용하십시오.

그러나 종종 다른 클래스에서 너무 많은 정적 변수를 앱에 포함하는 것은 나쁜 습관으로 간주됩니다. 그래서 당신은 그렇게, 아무것도 당신이

var myLogin = new Login(); 
myLogin.userType = 'value'; 

이 필요하지만이 방법은 모든 new Login()는 그 자체가 다른 유저 유형의 수행된다는 점에 유의 함께 앱에서 어딘가에 변수에 저장 로그인 클래스의 인스턴스를 할 수 있습니다 myLogin을 필요로하는 모든 객체에 전달하려고 할 것입니다.

객체 프로그래밍은 혼란 스럽지만 매우 강력합니다. 전체 내용을 여기에서 설명 할 수 없으므로 책이나 웹에서 읽는 것이 좋습니다.

재미있게 보내세요!

+0

내 Login.as 파일에 따르면 userType은 이미 public static var입니다. Login.as는 일반적으로 내 xmleditor.fla로 가져옵니다. 하지만 내 interface.fla에 변수를 사용해야합니다 내 interface.fla에 Login.as를 가져올 때 모든 종류의 컴파일 오류가 발생합니다 ... Login.as에 필요한 버튼이 xmleditor에만 존재하므로 .fla가 아니라 Login.userType 변수에 대한 액세스가 필요한 interface.fla. – Phil

+0

내 interface.swf에서 다음 코드 줄을 추가 할 수 있습니다. trace (this.root.parent); // outputs [object Loader] \t \t \t \t \t 추적 (this.root.parent.parent); // [object xmleditor] – Phil

관련 문제