2011-07-05 2 views
1
package { 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import flash.net.URLRequest; 
    import flash.net.navigateToURL; 
    import flash.text.TextFieldAutoSize; 
    import flash.text.TextFormat; 
    import flash.external.ExternalInterface;  

    import com.google.analytics.AnalyticsTracker; 
    import com.google.analytics.GATracker; 



    public class DetailView extends MovieClip { 

     var tracker:AnalyticsTracker = new GATracker(this, "UA-BLABLA", "AS3", true); 

플래시 패키지의 'GATracker'에 대해 어떤 문맥을 사용해야합니까?

1067: Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject. 

thistype Class 객체를 참조하기 때문에 완전히 이해가됩니다. 하지만 type Class을 통과 할 수 없다면 무엇을 통과해야합니까?

설명서를 here 있지만 생성자 메서드의 첫 번째 인수로 전달해야하는 모든 참조를 찾을 수 없습니다.

편집 # 1 : displayObject, http://code.google.com/p/gaforflash/source/browse/trunk/src/com/google/analytics/GATracker.as?r=398

을 전달해야하는 것처럼 들립니다.

답변

1

나는 DetailView가 생성되기 전에 당신이 this 키워드를 사용하기 때문에 그 생각합니다.

이제 클래스 변수가 선언 된 문맥에서 (함수 내에 포함되지 않음) this 키워드를 사용합니다. 아마 생성자 (또는 아마도 Event.ADDED_TO_STAGE 이벤트의 핸들러 함수에서)를 수행해야합니다.

또한 trackerAnalyticksTracker으로 지정 하시겠습니까? GATracker으로 지정 하시겠습니까? 일반적으로 new 키워드를 사용하여 만든 인스턴스를 저장하는 변수에 대해 동일한 유형을 사용합니다 (항상은 아니지만 일반적으로). 무비 클립이의 DisplayObject이기 때문에, 당신의 DetailView가의 DisplayObject입니다 DisplayObject의 전달에 관한, 또한

public class DetailView extends MovieClip { 

    private var tracker:GATracker; 

    public function DetailView() { 
     // Since this is the constructor, the this keyword will refer to the DetailView instance being created 
     tracker = new GATracker(this, "UA-BLABLA", "AS3", true); 
    } 

} 
+0

:

그래서 당신은 이런 식으로 뭔가를 시도 할 수 있습니다. –

+0

사실, 코드가'new GATracker' 생성자 다음에 작동을 멈춘다 고 생각합니다. -'new' 전에'console.log call'을하고'new' 전에 로그를 기록합니다. 또한 GA 문서에서 스 니펫의 'GATracker'대신 'AnalyticsTracker'를 사용했습니다. http://code.google.com/apis/analytics/docs/tracking/flashTrackingSetupFlash.html#useAnalyticsLibrary –

관련 문제