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 );
我明白了:
1067: Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject.
这完全有道理,因为this
引用了type Class
个对象。但是 - 如果我不能通过type Class
,我应该通过什么?
文档是here但是我找不到任何关于我应该传递给构造函数方法的第一个参数的引用。
编辑#1 :听起来我需要传递displayObject
,http://code.google.com/p/gaforflash/source/browse/trunk/src/com/google/analytics/GATracker.as?r=398
答案 0 :(得分:1)
我认为这是因为您在创建DetailView之前使用this
关键字。
现在,您在声明类变量的上下文中使用this
关键字(不在任何函数内)。您应该在构造函数中执行此操作(或者可能在Event.ADDED_TO_STAGE
事件的处理函数中执行此操作)。
此外,您确定要将tracker
声明为AnalyticksTracker
而不是GATracker
吗?通常,对存储使用new
关键字创建的实例的变量使用相同的类型(并非总是如此,但通常情况下)。
所以你可以尝试这样的事情:
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 );
}
}