Section 1
//Shortcut (cn.itamt.keyboard.Shortcut)
package cn.itamt.keyboard {
public class Shortcut {
private var _keycodes:Array;
public function Shortcut(keycodes:Array):void{
super();
_keycodes = keycodes.sort();
}
public function equalKeys(codes:Array):Boolean{
var i:int;
codes.sort();
if (codes.length == _keycodes.length){
i = codes.length;
while (i-- > 0) {
if (codes[i] != _keycodes[i]){
return (false);
};
};
return (true);
//unresolved jump
};
return (false);
}
public function toString():String{
return ((_keycodes + ""));
}
public function get keycodes():Array{
return (keycodes);
}
}
}//package cn.itamt.keyboard
Section 2
//ShortcutEvent (cn.itamt.keyboard.ShortcutEvent)
package cn.itamt.keyboard {
import flash.events.*;
public class ShortcutEvent extends Event {
public var shortcut:Shortcut;
public static const DOWN:String = "shortcut_down";
public static const UP:String = "shortcut_UP";
public function ShortcutEvent(shortcut:Shortcut, type:String, bubbles:Boolean=false, cancelabe:Boolean=true):void{
super(type, bubbles, cancelabe);
this.shortcut = shortcut;
}
}
}//package cn.itamt.keyboard
Section 3
//ShortcutManager (cn.itamt.keyboard.ShortcutManager)
package cn.itamt.keyboard {
import flash.display.*;
import flash.events.*;
public class ShortcutManager extends EventDispatcher {
protected var _typeKeys:Array;
protected var _shortcuts:Array;
protected var _downKeys:Array;
protected var _stage:Stage;
public function ShortcutManager():void{
super();
_downKeys = new Array(0xFF);
_shortcuts = [];
_typeKeys = [];
}
private function onKeyDown(evt:KeyboardEvent):void{
if (!_downKeys[evt.keyCode]){
_downKeys[evt.keyCode] = true;
_typeKeys.push(evt.keyCode);
checkShortcutTyped();
};
}
public function checkShortcutExist(keys:Array):Shortcut{
var shortcut:Shortcut;
var i:int = _shortcuts.length;
while (i-- > 0) {
shortcut = _shortcuts[i];
if (shortcut.equalKeys(keys)){
return (shortcut);
};
};
return (null);
}
protected function checkShortcutTyped():void{
var shortcut:Shortcut = this.checkShortcutExist(_typeKeys);
if (shortcut){
this.dispatchEvent(new ShortcutEvent(shortcut, ShortcutEvent.DOWN));
};
}
public function registerShortcut(st:Shortcut):void{
if (_shortcuts.indexOf(st) >= 0){
return;
};
_shortcuts.push(st);
}
public function unregisterKeys(keys:Array):void{
var shortcut:Shortcut = checkShortcutExist(keys);
if (shortcut){
this.unregisterShorcut(shortcut);
};
}
private function onKeyUp(evt:KeyboardEvent):void{
_downKeys[evt.keyCode] = false;
var t:int = _typeKeys.indexOf(evt.keyCode);
if (t > -1){
_typeKeys.splice(t, 1);
};
}
public function setStage(stage:Stage):void{
if (_stage != stage){
if (_stage == null){
_stage = stage;
_stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
_stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
};
};
}
public function unregisterShorcut(st:Shortcut):void{
var t:int = _shortcuts.indexOf(st);
if (t > -1){
_shortcuts.splice(t, 1);
};
}
}
}//package cn.itamt.keyboard
Section 4
//InspectMode (cn.itamt.utils.inspector.consts.InspectMode)
package cn.itamt.utils.inspector.consts {
public class InspectMode {
public static const DISPLAY_OBJ:String = "DisplayObject";
public static const INTERACTIVE_OBJ:String = "InteractiveObject";
public function InspectMode(){
super();
}
public function toString(mode:String):String{
switch (mode){
case DISPLAY_OBJ:
return ("DisplayObject Mode");
case INTERACTIVE_OBJ:
return ("InteractiveObject Mode");
default:
return ("undefined mode");
};
}
}
}//package cn.itamt.utils.inspector.consts
Section 5
//InspectorSymbolIcon (cn.itamt.utils.inspector.consts.InspectorSymbolIcon)
package cn.itamt.utils.inspector.consts {
import flash.display.*;
import cn.itamt.utils.*;
import flash.geom.*;
import cn.itamt.utils.inspector.ui.*;
import flash.utils.*;
public class InspectorSymbolIcon {
public static const SHAPE:String = "Shape";
public static const SPRITE:String = "Sprite";
public static const TEXT_FIELD:String = "TextField";
public static const CLLOAPSE:String = "-";
public static const AVM1_MOVIE:String = "AVM1Movie";
public static const LOADER:String = "Loader";
public static const EXPAND:String = "+";
public static const FAVORITE:String = "favorite";
public static const STATIC_TEXT:String = "StaticText";
public static const SIMPLE_BUTTON:String = "SimpleButton";
public static const MORPH_SHAPE:String = "MorphShape";
public static const DELETE:String = "delete";
public static const BUG:String = "bug";
public static const STAGE:String = "Stage";
public static const MOVIE_CLIP:String = "MovieClip";
public static const BITMAP:String = "Bitmap";
public static const UNKNOWN:String = "UNKNOWN";
public static const VIDEO:String = "Video";
private static var assetBmd:InspectorSymbolBmd;
private static var icons:Array = [InspectorSymbolIcon.UNKNOWN, InspectorSymbolIcon.SPRITE, InspectorSymbolIcon.MOVIE_CLIP, InspectorSymbolIcon.BITMAP, InspectorSymbolIcon.SHAPE, InspectorSymbolIcon.TEXT_FIELD, InspectorSymbolIcon.LOADER, InspectorSymbolIcon.VIDEO, InspectorSymbolIcon.AVM1_MOVIE, InspectorSymbolIcon.STATIC_TEXT, InspectorSymbolIcon.MORPH_SHAPE, InspectorSymbolIcon.SIMPLE_BUTTON, InspectorSymbolIcon.STAGE, InspectorSymbolIcon.EXPAND, InspectorSymbolIcon.CLLOAPSE, InspectorSymbolIcon.BUG, InspectorSymbolIcon.FAVORITE, InspectorSymbolIcon.DELETE];
private static var iconBmds:Array;
public function InspectorSymbolIcon(){
super();
}
public static function getIcon(iconName:String):BitmapData{
var bmd:BitmapData;
if (assetBmd == null){
assetBmd = new InspectorSymbolBmd();
iconBmds = [];
};
var t:int = icons.indexOf(iconName);
if (t < 0){
t = 0;
};
if (!iconBmds[t]){
bmd = new BitmapData(16, 16, true, 0);
bmd.copyPixels(assetBmd, new Rectangle((t * 16), 0, 16, 16), new Point(0, 0));
iconBmds[t] = bmd;
};
return (iconBmds[t]);
}
public static function getIconByClass(clazz):BitmapData{
var bmd:BitmapData;
var className:String = ClassTool.getShortClassName(clazz);
if ((((icons.indexOf(className) < 0)) && (!((className == "Object"))))){
bmd = getIconByClass(getDefinitionByName(getQualifiedSuperclassName(clazz)));
} else {
bmd = getIcon(className);
};
return (bmd);
}
}
}//package cn.itamt.utils.inspector.consts
Section 6
//DisplayItemData (cn.itamt.utils.inspector.data.DisplayItemData)
package cn.itamt.utils.inspector.data {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.events.*;
public class DisplayItemData extends EventDispatcher {
public var displayObject:DisplayObject;
public var isExpand:Boolean;
public var isOnInspect:Boolean;
public var hasChildren:Boolean;// = false
public var isOnLiveInspect:Boolean;
public function DisplayItemData(object:DisplayObject, isExpand:Boolean=false){
super();
displayObject = object;
if ((displayObject is DisplayObjectContainer)){
if ((displayObject as DisplayObjectContainer).numChildren){
hasChildren = true;
this.isExpand = isExpand;
};
};
}
public function onLiveInspect(val:Boolean):void{
this.isOnLiveInspect = val;
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.CHANGE));
}
public function toggleExpand():void{
if (isExpand){
this.collapseChilds();
} else {
this.expandChilds();
};
}
public function expandChilds():void{
this.isExpand = true;
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.EXPAND));
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.CHANGE));
}
public function onInspect(val:Boolean):void{
this.isOnInspect = val;
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.CHANGE));
}
public function collapseChilds():void{
this.isExpand = false;
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.COLLAPSE));
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.CHANGE));
}
}
}//package cn.itamt.utils.inspector.data
Section 7
//InspectTarget (cn.itamt.utils.inspector.data.InspectTarget)
package cn.itamt.utils.inspector.data {
import flash.display.*;
public class InspectTarget {
private var ox:Number;
private var oy:Number;
private var _dp:DisplayObject;
public function InspectTarget(dp:DisplayObject):void{
super();
this._dp = dp;
ox = this._dp.x;
oy = this._dp.y;
}
public function resetTarget():void{
if (_dp){
_dp.x = ox;
_dp.y = oy;
};
}
public function get displayObject():DisplayObject{
return (_dp);
}
public function isEqual(inspectTarget:InspectTarget):Boolean{
return ((this._dp == inspectTarget.displayObject));
}
public function dispose():void{
_dp = null;
}
}
}//package cn.itamt.utils.inspector.data
Section 8
//DisplayItemEvent (cn.itamt.utils.inspector.events.DisplayItemEvent)
package cn.itamt.utils.inspector.events {
import flash.events.*;
public class DisplayItemEvent extends Event {
public static const CHANGE:String = "item_change";
public static const EXPAND:String = "expand_childs";
public static const OVER:String = "item_over";
public static const COLLAPSE:String = "collapse_childs";
public static const CLICK:String = "item_click";
public function DisplayItemEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package cn.itamt.utils.inspector.events
Section 9
//InspectEvent (cn.itamt.utils.inspector.events.InspectEvent)
package cn.itamt.utils.inspector.events {
import flash.display.*;
import flash.events.*;
public class InspectEvent extends Event {
private var _inspectTarget:DisplayObject;
public static const LIVE_INSPECT:String = "live_inspect";
public static const REFRESH:String = "refresh";
public static const TURN_ON:String = "turn on";
public static const INSPECT:String = "inspect";
public static const TURN_OFF:String = "turn off";
public function InspectEvent(type:String, inspectTarget:DisplayObject, bubbles:Boolean=false, cancelable:Boolean=false):void{
_inspectTarget = inspectTarget;
super(type, bubbles, cancelable);
}
public function get inspectTarget():DisplayObject{
return (_inspectTarget);
}
}
}//package cn.itamt.utils.inspector.events
Section 10
//InspectorFilterEvent (cn.itamt.utils.inspector.events.InspectorFilterEvent)
package cn.itamt.utils.inspector.events {
import flash.events.*;
public class InspectorFilterEvent extends Event {
public var filter:Class;
public static const CHANGE:String = "inspector_change_filter";
public function InspectorFilterEvent(type:String, filter:Class, bubbles:Boolean=false, cancelable:Boolean=false){
this.filter = filter;
super(type, bubbles, cancelable);
}
}
}//package cn.itamt.utils.inspector.events
Section 11
//PropertyEvent (cn.itamt.utils.inspector.events.PropertyEvent)
package cn.itamt.utils.inspector.events {
import flash.events.*;
public class PropertyEvent extends Event {
public static var DEL_FAV:String = "remove_from_favorites";
public static var UPDATE:String = "update_property";
public static var FAV:String = "add_to_favorites";
public function PropertyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package cn.itamt.utils.inspector.events
Section 12
//InspectorFilterManager (cn.itamt.utils.inspector.filter.InspectorFilterManager)
package cn.itamt.utils.inspector.filter {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.interfaces.*;
import cn.itamt.utils.inspector.events.*;
public class InspectorFilterManager extends EventDispatcher implements IInspectorView {
private var _history:Array;
private var _curFilter:Class;
private var _defaultFilter:Class;
private var _inspector:Inspector;
public static const ID:String = "InspectorFilterManager";
public function InspectorFilterManager(){
super();
}
public function onUnregisterView(viewClassId:String):void{
}
public function onStartLiveInspect():void{
}
public function applyFilter(filter:Class):void{
if (_curFilter != filter){
if (_curFilter != null){
};
_curFilter = filter;
this._inspector.setInspectFilter(_curFilter);
if (_history == null){
_history = [];
};
if (_history.indexOf(_curFilter) < 0){
_history.push(_curFilter);
};
};
}
public function onStopLiveInspect():void{
}
public function onUpdate(target:InspectTarget=null):void{
}
public function resotreFilter():void{
if (this._defaultFilter == null){
this._defaultFilter = DisplayObject;
};
this.applyFilter(this._defaultFilter);
}
public function setDefaultFilter(clazz:Class):void{
_defaultFilter = clazz;
}
public function onTurnOff():void{
_inspector.stage.removeEventListener(InspectorFilterEvent.CHANGE, toChangeFilter);
}
public function onUnRegister(inspector:Inspector):void{
if (inspector == this._inspector){
_inspector.stage.removeEventListener(InspectorFilterEvent.CHANGE, toChangeFilter);
};
}
public function getCurFilter():Class{
return (((_curFilter == null)) ? _defaultFilter : _curFilter);
}
private function toChangeFilter(evt:InspectorFilterEvent):void{
this.applyFilter(evt.filter);
}
public function onInspectMode(clazz:Class):void{
}
public function contains(child:DisplayObject):Boolean{
return (false);
}
public function onRegisterView(viewClassId:String):void{
}
public function onRegister(inspector:Inspector):void{
_inspector = inspector;
}
public function getInspectorViewClassID():String{
return (InspectorFilterManager.ID);
}
public function onLiveInspect(target:InspectTarget):void{
}
public function onTurnOn():void{
_inspector.stage.addEventListener(InspectorFilterEvent.CHANGE, toChangeFilter, false, 0, true);
}
public function onInspect(target:InspectTarget):void{
}
}
}//package cn.itamt.utils.inspector.filter
Section 13
//IDisplayItemRenderer (cn.itamt.utils.inspector.interfaces.IDisplayItemRenderer)
package cn.itamt.utils.inspector.interfaces {
import cn.itamt.utils.inspector.data.*;
public interface IDisplayItemRenderer {
function setData(:DisplayItemData):void;
}
}//package cn.itamt.utils.inspector.interfaces
Section 14
//IInspectorView (cn.itamt.utils.inspector.interfaces.IInspectorView)
package cn.itamt.utils.inspector.interfaces {
import flash.display.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
public interface IInspectorView {
function onUnregisterView(child:String):void;
function onRegister(child:Inspector):void;
function onStartLiveInspect():void;
function onStopLiveInspect():void;
function onUpdate(child:InspectTarget=null):void;
function onLiveInspect(child:InspectTarget):void;
function onTurnOn():void;
function getInspectorViewClassID():String;
function onRegisterView(child:String):void;
function onTurnOff():void;
function onInspect(child:InspectTarget):void;
function onInspectMode(child:Class):void;
function onUnRegister(child:Inspector):void;
function contains(:DisplayObject):Boolean;
}
}//package cn.itamt.utils.inspector.interfaces
Section 15
//InspectorKeyManager (cn.itamt.utils.inspector.key.InspectorKeyManager)
package cn.itamt.utils.inspector.key {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.interfaces.*;
import cn.itamt.keyboard.*;
import flash.utils.*;
public class InspectorKeyManager extends ShortcutManager implements IInspectorView {
private var _keyFunMap:Dictionary;
private var _keyViewMap:Dictionary;
private var _inspector:Inspector;
public static const ID:String = "inspector_key_manager";
public function InspectorKeyManager():void{
super();
this.addEventListener(ShortcutEvent.DOWN, onShortcutDown);
}
public function onUnregisterView(viewClassId:String):void{
}
private function onKeyDown(evt:KeyboardEvent):void{
_downKeys[evt.keyCode] = true;
}
public function onStartLiveInspect():void{
}
private function onShortcutDown(evt:ShortcutEvent):void{
var viewID:String = _keyViewMap[evt.shortcut];
if (viewID){
this._inspector.toggleViewByID(viewID);
};
var fun:Function = _keyFunMap[evt.shortcut];
if (fun){
fun.call();
};
}
public function onUpdate(target:InspectTarget=null):void{
}
public function onTurnOn():void{
_downKeys = new Array(0xFF);
_inspector.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
public function onStopLiveInspect():void{
}
public function bindKey2Fun(keys:Array, fun:Function):void{
if (_keyFunMap == null){
_keyFunMap = new Dictionary(true);
};
var shortcut:Shortcut = checkShortcutExist(keys);
if (shortcut == null){
shortcut = new Shortcut(keys);
this.registerShortcut(shortcut);
};
_keyFunMap[shortcut] = fun;
}
public function onInspectMode(clazz:Class):void{
}
public function bindKey2View(keys:Array, viewID:String=null):void{
if (_keyViewMap == null){
_keyViewMap = new Dictionary(true);
};
var shortcut:Shortcut = checkShortcutExist(keys);
if (shortcut == null){
shortcut = new Shortcut(keys);
this.registerShortcut(shortcut);
};
_keyViewMap[shortcut] = viewID;
}
public function unbindKey2Fun(keys:Array=null, fun:Function=null):void{
var shortcut:Shortcut;
var i:*;
if ((((keys == null)) && ((fun == null)))){
throw (new ArgumentError("keys, fun两个参数不能同时为空."));
};
if (keys){
shortcut = this.checkShortcutExist(keys);
if (shortcut){
_keyFunMap[shortcut] = null;
delete _keyFunMap[shortcut];
};
} else {
if (fun){
for (i in _keyFunMap) {
if (_keyFunMap[i] == fun){
_keyFunMap[i] = null;
delete _keyFunMap[shortcut];
break;
};
};
};
};
}
public function onTurnOff():void{
_inspector.stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
public function onUnRegister(inspector:Inspector):void{
if (inspector == this._inspector){
_inspector.stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
};
}
public function onRegister(inspector:Inspector):void{
_inspector = inspector;
this.setStage(_inspector.stage);
}
public function contains(child:DisplayObject):Boolean{
return (false);
}
public function onRegisterView(viewClassId:String):void{
}
public function getInspectorViewClassID():String{
return (InspectorKeyManager.ID);
}
public function onLiveInspect(target:InspectTarget):void{
}
public function onInspect(target:InspectTarget):void{
}
public function unbindKey2View(keys:Array=null, viewID:String=null):void{
var shortcut:Shortcut;
var i:*;
if ((((keys == null)) && ((viewID == null)))){
throw (new ArgumentError("keys, view两个参数不能同时为空."));
};
if (keys){
shortcut = this.checkShortcutExist(keys);
if (shortcut){
_keyViewMap[shortcut] = null;
delete _keyViewMap[shortcut];
};
} else {
if (viewID){
for (i in _keyViewMap) {
if (_keyViewMap[i] == viewID){
_keyViewMap[i] = null;
delete _keyViewMap[shortcut];
break;
};
};
};
};
}
}
}//package cn.itamt.utils.inspector.key
class ShortCut {
private function ShortCut():void{
super();
}
}
Section 16
//CN (cn.itamt.utils.inspector.lang.CN)
package cn.itamt.utils.inspector.lang {
public class CN extends Lang {
public function CN():void{
super();
file = <lang>
<![CDATA[
LiveRotate = 拖動旋轉
LiveScale = 拖動縮放
LiveMove = 拖動(雙擊還原)
SubmmitBug = 反饋bug
InspectChild = 查看自顯示對象
InspectParent = 查看父顯示對象
InspectBrother = 查看下一個顯示對象
InspectInfo = 查看詳細信息
ViewStructure = 查看顯示列表結構
SetFilterClass = 只查看該類型
Refresh = 刷新
Property = 屬性
Method = 方法
ViewProperties = 查看對象的屬性
ViewMethods = 查看對象的方法
MinimizePanel = 最小化面板
RestorePanel = 還原面板
SingletonMode = 單面板模式
MultipleMode = 多面板模式
ViewFullProperties = 顯示所有屬性
ViewMarkedProperties = 顯示收藏屬性
Close = 關閉
MarkProperty = 收藏
DelMark = 刪除
StructurePanel = 顯示結構面板
PropertyPanel = 屬性面板
]]>
</lang>
;
}
}
}//package cn.itamt.utils.inspector.lang
Section 17
//EN (cn.itamt.utils.inspector.lang.EN)
package cn.itamt.utils.inspector.lang {
public class EN extends Lang {
public function EN(){
super();
file = <lang>
<![CDATA[
LiveRotate = drag rotate
LiveScale = drag scale
LiveMove = drag move(dbclick reset)
SubmmitBug = I catch a bug!
InspectChild = inspect child
InspectParent = inspect parent
InspectBrother = inspect next
InspectInfo = show info
ViewStructure = show structure
SetFilterClass = set as filter
Refresh = refresh
Property = Property
Method = Method
ViewProperties = Properties
ViewMethods = Methods
MinimizePanel = minimize panel
RestorePanel = restore panel
SingletonMode = single mode
MultipleMode = multiple mode
ViewFullProperties = display all properties
ViewMarkedProperties = display marked properties
Close = close
MarkProperty = mark property
DelMark = delete mark
StructurePanel = structure panel
PropertyPanel = property panel
]]>
</lang>
;
}
}
}//package cn.itamt.utils.inspector.lang
Section 18
//InspectorLanguageManager (cn.itamt.utils.inspector.lang.InspectorLanguageManager)
package cn.itamt.utils.inspector.lang {
import flash.system.*;
public class InspectorLanguageManager {
private static var lang:Lang;
public function InspectorLanguageManager(){
super();
}
public static function setLanguage(n:Lang):void{
lang = n;
}
public static function getStr(str:String):String{
if (lang == null){
switch (Capabilities.language){
case "zh-CN":
case "zh-TW":
lang = new CN();
break;
default:
lang = new EN();
break;
};
};
return (lang.getTipValueString(str));
}
}
}//package cn.itamt.utils.inspector.lang
Section 19
//Lang (cn.itamt.utils.inspector.lang.Lang)
package cn.itamt.utils.inspector.lang {
public class Lang {
public var file:XML;
protected var _data:Object;
protected var _builded:Boolean;
public function Lang(){
super();
}
private function trim(source:String, removeChars:String="
"):String{
var pattern:RegExp = new RegExp((((("^[" + removeChars) + "]+|[") + removeChars) + "]+$"), "g");
return (source.replace(pattern, ""));
}
protected function build():void{
var item:String;
var prop:String;
var value:String;
_data = {};
var str:String = file.toString();
var rExp:RegExp = new RegExp("\\b\\S*\\s*=\\s*.*\\s", "g");
var matches:Array = str.match(rExp);
var i:int;
while (i < matches.length) {
item = matches[i];
prop = trim(item.slice(0, item.indexOf("=")));
value = trim(item.slice((item.indexOf("=") + 1)));
_data[prop] = value;
i++;
};
}
public function getTipValueString(tipStr:String):String{
if (!_builded){
this.build();
};
return (String(_data[tipStr]));
}
}
}//package cn.itamt.utils.inspector.lang
Section 20
//DisplayObjectChildrenInfoOutputer (cn.itamt.utils.inspector.output.DisplayObjectChildrenInfoOutputer)
package cn.itamt.utils.inspector.output {
import flash.display.*;
import cn.itamt.utils.*;
public class DisplayObjectChildrenInfoOutputer extends DisplayObjectInfoOutPuter {
public function DisplayObjectChildrenInfoOutputer():void{
super();
}
override public function output(source:DisplayObject):String{
var tmp:DisplayObjectContainer;
if ((source is DisplayObjectContainer)){
tmp = (source as DisplayObjectContainer);
return ((((((("[<font color=\"#99cc00\">" + source.name) + "</font>]childs:<font color=\"#000000\">") + tmp.numChildren) + "/") + DisplayObjectTool.getAllChildrenNum(tmp)) + "</font>"));
};
return ((("[" + source.name) + "]"));
}
}
}//package cn.itamt.utils.inspector.output
Section 21
//DisplayObjectInfoOutPuter (cn.itamt.utils.inspector.output.DisplayObjectInfoOutPuter)
package cn.itamt.utils.inspector.output {
import flash.display.*;
import cn.itamt.utils.*;
public class DisplayObjectInfoOutPuter extends OutPuter {
public function DisplayObjectInfoOutPuter(){
super();
}
public function output(source:DisplayObject):String{
return (((((((((((((("[" + ClassTool.getShortClassName(source)) + "]") + "<font color=\"#990000\">[x:") + source.x) + ", y: ") + source.y) + "]</font><font color=\"#0000FF\">[w: ") + int(source.width)) + ", h: ") + int(source.height)) + "]</font><font color=\"#FF9900\">[r: ") + int(source.rotation)) + "°]</font>"));
}
}
}//package cn.itamt.utils.inspector.output
Section 22
//OutPuter (cn.itamt.utils.inspector.output.OutPuter)
package cn.itamt.utils.inspector.output {
public class OutPuter {
public function OutPuter(){
super();
}
public function dispose():void{
}
}
}//package cn.itamt.utils.inspector.output
Section 23
//StructureTreeItemInfoOutputer (cn.itamt.utils.inspector.output.StructureTreeItemInfoOutputer)
package cn.itamt.utils.inspector.output {
import flash.display.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.ui.*;
public class StructureTreeItemInfoOutputer extends DisplayObjectInfoOutPuter {
public function StructureTreeItemInfoOutputer(){
super();
}
override public function output(source:DisplayObject):String{
var c:uint = InspectorColorStyle.getObjectColor(source);
var className:String = ClassTool.getShortClassName(source);
return ((((((("<font color=\"#" + c.toString(16)) + "\">") + className) + "</font>(") + source.name) + ")"));
}
}
}//package cn.itamt.utils.inspector.output
Section 24
//BasePropertyEditor (cn.itamt.utils.inspector.renders.BasePropertyEditor)
package cn.itamt.utils.inspector.renders {
import flash.display.*;
public class BasePropertyEditor extends Sprite {
protected var _height:Number;// = 20
protected var _width:Number;// = 30
protected var _xml:XML;
public function BasePropertyEditor(){
super();
}
public function getPropName():String{
return (_xml.@name);
}
public function setXML(target, xml:XML):void{
_xml = xml;
}
public function setSize(w:Number, h:Number):void{
_width = w;
_height = h;
this.relayOut();
}
public function getValue(){
return (null);
}
public function relayOut():void{
this.graphics.lineStyle(2, 0x333333);
this.graphics.drawRoundRect(0, 0, _width, _height, 5, 5);
}
}
}//package cn.itamt.utils.inspector.renders
Section 25
//BooleanPropertyEditor (cn.itamt.utils.inspector.renders.BooleanPropertyEditor)
package cn.itamt.utils.inspector.renders {
import flash.events.*;
import cn.itamt.utils.inspector.ui.*;
import cn.itamt.utils.inspector.events.*;
public class BooleanPropertyEditor extends PropertyEditor {
private var valueBtn:ToggleBooleanButton;
public function BooleanPropertyEditor(){
super();
this.valueBtn = new ToggleBooleanButton();
this.valueBtn.addEventListener(Event.CHANGE, onValueBtnChange);
addChild(this.valueBtn);
}
override public function getValue(){
return (this.valueBtn.value);
}
override public function setXML(target, xml:XML):void{
var value:*;
_xml = xml;
value_tf.mouseEnabled = (this.valueBtn.enabled = false);
if (_xml.@access == "writeonly"){
value_tf.textColor = 0xFF0000;
value_tf.text = "write only";
return;
};
if (_xml.@access == "readonly"){
value_tf.textColor = 0x999999;
this.valueBtn.mouseEnabled = false;
} else {
if (_xml.@access == "readwrite"){
this.valueBtn.enabled = true;
};
};
value = target[_xml.@name];
if (value == null){
value_tf.textColor = 0xFF0000;
value_tf.text = "null";
} else {
value_tf.text = value;
this.valueBtn.value = value;
};
}
private function onValueBtnChange(evt:Event):void{
this.value_tf.text = String(this.valueBtn.value);
dispatchEvent(new PropertyEvent(PropertyEvent.UPDATE, true, true));
}
override public function relayOut():void{
super.relayOut();
this.valueBtn.x = ((value_tf.x + value_tf.textWidth) + 10);
this.valueBtn.y = 3;
if (this.valueBtn.x > (this._width - this.valueBtn.width)){
this.valueBtn.x = (this._width - this.valueBtn.width);
};
}
}
}//package cn.itamt.utils.inspector.renders
Section 26
//MethodEditor (cn.itamt.utils.inspector.renders.MethodEditor)
package cn.itamt.utils.inspector.renders {
public class MethodEditor extends PropertyEditor {
public function MethodEditor(){
super();
}
override public function setXML(target, xml:XML):void{
_xml = xml;
var type:String = _xml.@returnType;
value_tf.text = type;
}
}
}//package cn.itamt.utils.inspector.renders
Section 27
//MethodRender (cn.itamt.utils.inspector.renders.MethodRender)
package cn.itamt.utils.inspector.renders {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.ui.*;
import flash.text.*;
public class MethodRender extends Sprite {
private var name_tf:TextField;
private var _width:Number;
private var _height:Number;
private var _target;
private var _xml:XML;
private var valueEditor:BasePropertyEditor;
public function MethodRender(w:Number=200, h:Number=20):void{
super();
this._width = w;
this._height = h;
name_tf = InspectorTextField.create("", 0xCCCCCC, 12);
name_tf.height = (_height - 2);
name_tf.selectable = (name_tf.mouseEnabled = (name_tf.mouseWheelEnabled = false));
addChild(name_tf);
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded(evt:Event):void{
this.relayout();
}
private function drawBg():void{
this.graphics.clear();
this.graphics.beginFill(0x282828);
this.graphics.drawRoundRect(0, 0, (name_tf.width + 16), _height, 5, 5);
this.graphics.endFill();
}
public function update():void{
this.valueEditor.setXML(_target, _xml);
}
public function get xml():XML{
return (_xml);
}
public function resize():void{
}
public function setXML(target, methodXML:XML):void{
_target = target;
_xml = methodXML;
name_tf.text = methodXML.@name;
if (valueEditor == null){
this.valueEditor = new MethodEditor();
addChildAt(this.valueEditor, 0);
};
this.valueEditor.setXML(target, methodXML);
this.relayout();
}
public function relayout():void{
name_tf.width = (name_tf.textWidth + 4);
if (name_tf.width < 48){
name_tf.width = 48;
};
name_tf.x = 12;
if (valueEditor){
valueEditor.setSize(((_width - name_tf.width) - 15), this._height);
valueEditor.x = ((name_tf.x + name_tf.width) + 8);
};
drawBg();
}
}
}//package cn.itamt.utils.inspector.renders
Section 28
//NumberPropertyEditor (cn.itamt.utils.inspector.renders.NumberPropertyEditor)
package cn.itamt.utils.inspector.renders {
public class NumberPropertyEditor extends StringPropertyEditor {
public function NumberPropertyEditor(){
super();
this.value_tf.restrict = ".0-9\\-";
}
override public function getValue(){
return (Number(value_tf.text));
}
}
}//package cn.itamt.utils.inspector.renders
Section 29
//PropertyAccessorRender (cn.itamt.utils.inspector.renders.PropertyAccessorRender)
package cn.itamt.utils.inspector.renders {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.ui.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
public class PropertyAccessorRender extends Sprite {
private var _height:Number;
private var _width:Number;
private var _xml:XML;
private var name_tf:TextField;
private var _favIconBtn:InspectorViewFavoriteButton;
private var _target;
private var valueEditor:BasePropertyEditor;
public function PropertyAccessorRender(w:Number=200, h:Number=20, isFavorite:Boolean=false):void{
super();
this._width = w;
this._height = h;
name_tf = InspectorTextField.create("property name", 0xCCCCCC, 12, 0, 0, "none", "right");
name_tf.height = (_height - 2);
name_tf.selectable = (name_tf.mouseEnabled = (name_tf.mouseWheelEnabled = false));
addChild(name_tf);
_favIconBtn = new InspectorViewFavoriteButton(!(isFavorite));
_favIconBtn.visible = false;
_favIconBtn.y = 1;
addChild(_favIconBtn);
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
this.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
this.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
this._favIconBtn.addEventListener(MouseEvent.CLICK, onClickFavBtn);
}
private function createPropertyEditor(type:String):BasePropertyEditor{
switch (type){
case "String":
return (new StringPropertyEditor());
case "Number":
return (new NumberPropertyEditor());
case "int":
return (new NumberPropertyEditor());
case "uint":
return (new UnitPropertyEditor());
case "Boolean":
return (new BooleanPropertyEditor());
default:
return (new PropertyEditor());
};
}
public function update():void{
this.valueEditor.setXML(_target, _xml);
}
private function onClickFavBtn(evt:MouseEvent):void{
if (this._favIconBtn.normalMode){
dispatchEvent(new PropertyEvent(PropertyEvent.DEL_FAV, true, true));
} else {
dispatchEvent(new PropertyEvent(PropertyEvent.FAV, true, true));
};
}
public function setXML(target, accessorXML:XML):void{
_target = target;
_xml = accessorXML;
name_tf.text = accessorXML.@name;
var type:String = accessorXML.@type;
if (valueEditor == null){
this.valueEditor = this.createPropertyEditor(type);
addChildAt(this.valueEditor, 0);
};
this.valueEditor.setXML(target, accessorXML);
this.relayout();
}
public function get xml():XML{
return (_xml);
}
public function setFavorite(bool:Boolean):void{
_favIconBtn.normalMode = !(bool);
drawBg();
}
private function onAdded(evt:Event):void{
this.relayout();
}
public function relayout():void{
name_tf.width = (name_tf.textWidth + 4);
if (name_tf.width < 48){
name_tf.width = 48;
};
name_tf.x = 12;
if (valueEditor){
valueEditor.setSize(((_width - name_tf.width) - 15), this._height);
valueEditor.x = ((name_tf.x + name_tf.width) + 8);
};
drawBg();
}
private function drawBg():void{
this.graphics.clear();
this.graphics.beginFill((_favIconBtn.normalMode) ? 0x282828 : 0x282828);
this.graphics.drawRoundRect(0, 0, (name_tf.width + 16), _height, 5, 5);
this.graphics.endFill();
}
private function onRollOut(evt:MouseEvent):void{
this._favIconBtn.visible = false;
}
public function resize():void{
}
private function onRollOver(evt:MouseEvent):void{
this._favIconBtn.visible = true;
}
}
}//package cn.itamt.utils.inspector.renders
Section 30
//PropertyEditor (cn.itamt.utils.inspector.renders.PropertyEditor)
package cn.itamt.utils.inspector.renders {
import flash.events.*;
import cn.itamt.utils.inspector.ui.*;
import flash.text.*;
import flash.utils.*;
public class PropertyEditor extends BasePropertyEditor {
protected var value_tf:TextField;
public function PropertyEditor(){
super();
value_tf = InspectorTextField.create("", 0, 12);
value_tf.multiline = false;
value_tf.mouseWheelEnabled = false;
value_tf.height = (_height - 2);
addChild(value_tf);
value_tf.addEventListener(FocusEvent.FOCUS_IN, onFocusIn);
value_tf.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);
}
protected function onFocusOut(evt:FocusEvent):void{
this.value_tf.textColor = 0;
this.graphics.clear();
this.graphics.lineStyle(2, 0x333333);
this.graphics.drawRoundRect(0, 0, _width, _height, 5, 5);
}
override public function getValue(){
var classRef:Class = (getDefinitionByName(this._xml.@type) as Class);
return (classRef(value_tf.text));
}
override public function setXML(target, xml:XML):void{
var value:*;
_xml = xml;
var type:String = _xml.@type;
if (_xml.@access == "writeonly"){
value_tf.textColor = 0xFF0000;
value_tf.text = "write only";
value_tf.mouseEnabled = false;
return;
};
if (_xml.@access == "readonly"){
value_tf.textColor = 0x999999;
value_tf.mouseEnabled = false;
} else {
if (_xml.@access == "readwrite"){
};
};
value = target[_xml.@name];
if ((((value == null)) || ((value == undefined)))){
value_tf.textColor = 0xFF0000;
value_tf.text = String(value);
return;
};
if ((((((((((((type == "Boolean")) || ((type == "Number")))) || ((type == "String")))) || ((type == "int")))) || ((type == "uint")))) || ((type == "void")))){
value_tf.text = value;
} else {
value_tf.text = value.toString();
};
}
override public function relayOut():void{
super.relayOut();
value_tf.x = 2;
value_tf.width = (_width - 4);
value_tf.height = (_height - 2);
}
protected function onFocusIn(evt:FocusEvent):void{
this.value_tf.textColor = 0xFFFFFF;
this.graphics.clear();
this.graphics.lineStyle(4, 0x222222);
this.graphics.beginFill(6716929);
this.graphics.drawRoundRect(0, 0, _width, _height, 5, 5);
this.graphics.endFill();
}
}
}//package cn.itamt.utils.inspector.renders
Section 31
//StringPropertyEditor (cn.itamt.utils.inspector.renders.StringPropertyEditor)
package cn.itamt.utils.inspector.renders {
import flash.events.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
public class StringPropertyEditor extends PropertyEditor {
public function StringPropertyEditor(){
super();
}
override public function getValue(){
return (value_tf.text);
}
protected function onPressEnter(evt:KeyboardEvent):void{
if (evt.keyCode == 13){
dispatchEvent(new PropertyEvent(PropertyEvent.UPDATE, true, true));
};
}
override protected function onFocusOut(evt:FocusEvent):void{
super.onFocusOut(evt);
this.removeEventListener(KeyboardEvent.KEY_UP, onPressEnter);
}
override protected function onFocusIn(evt:FocusEvent):void{
super.onFocusIn(evt);
this.addEventListener(KeyboardEvent.KEY_UP, onPressEnter);
}
override public function setXML(target, xml:XML):void{
var value:*;
_xml = xml;
if (_xml.@access == "writeonly"){
value_tf.textColor = 0xFF0000;
value_tf.text = "write only";
value_tf.mouseEnabled = false;
return;
};
if (_xml.@access == "readonly"){
value_tf.textColor = 0x999999;
value_tf.mouseEnabled = false;
} else {
if (_xml.@access == "readwrite"){
value_tf.type = TextFieldType.INPUT;
};
};
value = target[_xml.@name];
if (value == null){
value_tf.textColor = 0xFF0000;
value_tf.text = "null";
} else {
value_tf.text = value;
};
}
}
}//package cn.itamt.utils.inspector.renders
Section 32
//UnitPropertyEditor (cn.itamt.utils.inspector.renders.UnitPropertyEditor)
package cn.itamt.utils.inspector.renders {
import flash.events.*;
import cn.itamt.utils.inspector.events.*;
public class UnitPropertyEditor extends NumberPropertyEditor {
private var value:uint;
public function UnitPropertyEditor(){
super();
this.value_tf.restrict = "A-Fa-f0-9#";
}
override protected function onPressEnter(evt:KeyboardEvent):void{
var color:String;
if (evt.keyCode == 13){
color = value_tf.text;
if (color.indexOf("#") > -1){
color = color.replace(/^\s+|\s+$/g, "");
color = color.replace(/#/g, "");
};
value = parseInt(color, 16);
dispatchEvent(new PropertyEvent(PropertyEvent.UPDATE, true, true));
};
}
override public function setXML(target, xml:XML):void{
super.setXML(target, xml);
if ((((_xml.@name == "backgroundColor")) || ((_xml.@name == "borderColor")))){
value = uint(value_tf.text);
value_tf.text = ("#" + colorToString(value));
};
}
override public function getValue(){
return (value);
}
protected function colorToString(color:uint):String{
var colorText:String = color.toString(16);
while (colorText.length < 6) {
colorText = ("0" + colorText);
};
return (colorText);
}
}
}//package cn.itamt.utils.inspector.renders
Section 33
//BaseDisplayItemView (cn.itamt.utils.inspector.ui.BaseDisplayItemView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.interfaces.*;
public class BaseDisplayItemView extends Sprite implements IDisplayItemRenderer {
protected var _data:DisplayItemData;
public function BaseDisplayItemView(){
super();
}
public function get data():DisplayItemData{
return (_data);
}
public function setData(value:DisplayItemData):void{
}
}
}//package cn.itamt.utils.inspector.ui
Section 34
//BaseInspectorView (cn.itamt.utils.inspector.ui.BaseInspectorView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.interfaces.*;
import cn.itamt.utils.inspector.output.*;
public class BaseInspectorView implements IInspectorView {
protected var target:InspectTarget;
protected var viewContainer:Sprite;
protected var _inspector:Inspector;
public function BaseInspectorView(){
super();
}
public function onUnregisterView(viewClassId:String):void{
}
public function onTurnOn():void{
}
public function onStartLiveInspect():void{
}
public function onUpdate(target:InspectTarget=null):void{
}
public function onStopLiveInspect():void{
}
public function onTurnOff():void{
}
public function contains(child:DisplayObject):Boolean{
if (viewContainer){
return ((((viewContainer == child)) || (viewContainer.contains(child))));
};
return (false);
}
public function onRegisterView(viewClassId:String):void{
}
public function onLiveInspect(target:InspectTarget):void{
}
public function onUnRegister(inspector:Inspector):void{
}
public function getInspectorViewClassID():String{
return ("BaseInspectorView");
}
public function onRegister(inspector:Inspector):void{
var tg:InspectTarget;
this._inspector = inspector;
if (this._inspector.isOn){
onTurnOn();
tg = _inspector.getCurInspectTarget();
if (tg){
if (_inspector.isLiveInspecting){
this.onLiveInspect(tg);
} else {
this.onInspect(tg);
};
};
};
}
public function onInspect(target:InspectTarget):void{
}
public function onInspectMode(clazz:Class):void{
}
public function setInfoOutputer(outputer:DisplayObjectInfoOutPuter):void{
}
}
}//package cn.itamt.utils.inspector.ui
Section 35
//BugReportPanel (cn.itamt.utils.inspector.ui.BugReportPanel)
package cn.itamt.utils.inspector.ui {
import flash.events.*;
import cn.itamt.utils.*;
import flash.text.*;
import flash.filters.*;
public class BugReportPanel extends InspectorViewPanel {
public function BugReportPanel(w:Number=315, h:Number=150){
super(("tInspector " + Inspector.VERSION), w, h);
bg.filters = null;
filters = [new GlowFilter(0, 1, 16, 16, 1)];
var tf:TextField = InspectorTextField.create("", 0xFFFFFF, 12);
var css:StyleSheet = new StyleSheet();
css.setStyle("a:hover", {color:"#ff0000", textDecoration:"underline"});
css.setStyle("a", {color:"#99cc00"});
tf.styleSheet = css;
tf.width = ((_width - _padding.left) - _padding.right);
tf.wordWrap = (tf.multiline = true);
tf.htmlText = "<br>authors: <font color=\"#99cc00\">itamt@qq.com pethan@qq.vip.com</font><br><br>project: <a href=\"http://code.google.com/p/tcodes/wiki/tInspector\">tInspector on Google Code</a>";
tf.height = (tf.textHeight + 6);
this.setContent(tf);
this._title.mouseEnabled = (this._title.mouseWheelEnabled = false);
}
override protected function onClickClose(evt:Event):void{
if (this.stage){
this.parent.removeChild(this);
};
}
}
}//package cn.itamt.utils.inspector.ui
Section 36
//DisplayItemRenderer (cn.itamt.utils.inspector.ui.DisplayItemRenderer)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
public class DisplayItemRenderer extends BaseDisplayItemView {
public var name_tf:TextField;
public var btn:MovieClip;
public function DisplayItemRenderer(){
super();
name_tf.autoSize = "left";
btn.addEventListener(MouseEvent.CLICK, onClickExpand);
}
private function getDisplayObjectLevel(object:DisplayObject):int{
var i:int;
if ((object is Stage)){
return (0);
};
if (object.stage){
i = 0;
while (object.parent) {
object = object.parent;
i++;
};
return (i);
//unresolved jump
};
return (-1);
}
private function onDataChange(evt:DisplayItemEvent):void{
this.setData(_data);
}
private function onClickExpand(evt:MouseEvent):void{
_data.toggleExpand();
}
override public function setData(value:DisplayItemData):void{
if (_data != value){
if (_data){
_data.removeEventListener(DisplayItemEvent.CHANGE, onDataChange);
};
_data = value;
_data.addEventListener(DisplayItemEvent.CHANGE, onDataChange, false, 0, true);
};
if (_data.hasChildren){
btn.visible = true;
if (_data.isExpand){
this.btn.gotoAndStop(1);
} else {
this.btn.gotoAndStop(2);
};
} else {
btn.visible = false;
};
name_tf.text = ClassTool.getShortClassName(_data.displayObject);
var level:int = getDisplayObjectLevel(_data.displayObject);
btn.x = (level * 10);
name_tf.x = ((btn.x + btn.width) + 4);
}
}
}//package cn.itamt.utils.inspector.ui
Section 37
//DisplayObjectTree (cn.itamt.utils.inspector.ui.DisplayObjectTree)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.events.*;
import flash.utils.*;
public class DisplayObjectTree extends Sprite {
private var _root:DisplayObject;
private var _data:Array;
private var _itemRenderer:Class;
private var _map:Dictionary;
public var filterFun:Function;
private var _list:Sprite;
public function DisplayObjectTree(object:DisplayObject, itemRenderClass:Class=null){
super();
_data = [];
_map = new Dictionary();
if (itemRenderClass == null){
_itemRenderer = DisplayItemRenderer;
} else {
_itemRenderer = itemRenderClass;
};
this._root = object;
this._list = new Sprite();
addChild(this._list);
this.initTree();
this.drawList();
}
private function inspectDisplayItem(item:DisplayItemData):void{
var parent:DisplayItemData;
var parentObject:DisplayObjectContainer = item.displayObject.parent;
if ((((parentObject == null)) || ((item.displayObject == this._root)))){
this.expandDisplayItem(item);
} else {
parent = getDisplayItem(parentObject);
parent.isExpand = true;
if (hasDisplayItem(parent)){
this.expandDisplayItem(parent);
} else {
inspectDisplayItem(parent);
};
};
}
public function drawList():void{
var item:DisplayItemData;
var render:BaseDisplayItemView;
_list.graphics.clear();
_list.graphics.lineTo(0, 0);
while (_list.numChildren) {
ObjectPool.disposeObject(_list.removeChildAt(0), _itemRenderer);
};
var i:int;
while (i < _data.length) {
item = _data[i];
if (item.displayObject.stage == null){
} else {
if (filterFun){
//unresolved if
} else {
render = ObjectPool.getObject(_itemRenderer);
render.setData(item);
render.x = 0;
render.y = (_list.height + 2);
_list.addChild(render);
};
};
i++;
};
dispatchEvent(new Event(Event.RESIZE));
}
private function expandDisplayItem(item:DisplayItemData):void{
var container:DisplayObjectContainer;
var childItem:DisplayItemData;
var i:int;
if (item.hasChildren){
if ((item.displayObject is DisplayObjectContainer)){
container = (item.displayObject as DisplayObjectContainer);
i = (container.numChildren - 1);
while (i >= 0) {
childItem = getDisplayItem(container.getChildAt(i));
addDisplayItemAfter(childItem, item);
if (((childItem.hasChildren) && (childItem.isExpand))){
expandDisplayItem(childItem);
};
i--;
};
};
};
}
private function initTree():void{
var container:DisplayObjectContainer;
var i:int;
var itemData:DisplayItemData = getDisplayItem(_root);
itemData.isExpand = true;
addDisplayItem(itemData);
if ((_root is DisplayObjectContainer)){
container = (_root as DisplayObjectContainer);
i = 0;
while (i < container.numChildren) {
addDisplayItem(getDisplayItem(container.getChildAt(i)));
i++;
};
};
}
private function collapseDisplayItem(item:DisplayItemData):void{
var container:DisplayObjectContainer;
var i:int;
if (item.hasChildren){
if ((item.displayObject is DisplayObjectContainer)){
container = (item.displayObject as DisplayObjectContainer);
i = 0;
while (i < container.numChildren) {
removeItemAndChilds(getDisplayItem(container.getChildAt(i)));
i++;
};
};
};
}
private function removeDisplayItem(item:DisplayItemData):void{
var i:int = _data.indexOf(item);
if (i >= 0){
_data.splice(i, 1);
};
}
private function addDisplayItem(item:DisplayItemData):void{
if ((((item.displayObject == this)) && (this.contains(item.displayObject)))){
return;
};
if (_data.indexOf(item) < 0){
_data.push(item);
};
}
private function removeItemAndChilds(item:DisplayItemData):void{
var container:DisplayObjectContainer;
var i:int;
this.removeDisplayItem(item);
if (item.hasChildren){
container = (item.displayObject as DisplayObjectContainer);
i = 0;
while (i < container.numChildren) {
removeItemAndChilds(getDisplayItem(container.getChildAt(i)));
i++;
};
};
}
public function getObjectRenderer(object:DisplayObject){
var render:BaseDisplayItemView;
var i:int = _list.numChildren;
while (i--) {
render = (_list.getChildAt(i) as BaseDisplayItemView);
if (render.data.displayObject == object){
return ((render as _itemRenderer));
};
};
return (null);
}
private function onExpandCollapseItem(evt:DisplayItemEvent):void{
var item:DisplayItemData = (evt.target as DisplayItemData);
switch (evt.type){
case DisplayItemEvent.EXPAND:
expandDisplayItem(item);
break;
case DisplayItemEvent.COLLAPSE:
collapseDisplayItem(item);
break;
};
this.drawList();
}
private function addDisplayItemAfter(item:DisplayItemData, afterItem:DisplayItemData):void{
var t:int = _data.indexOf(afterItem);
if (t >= 0){
addDisplayItemAt((t + 1), item);
};
}
private function buildTree(object:DisplayObject):void{
var container:DisplayObjectContainer;
var i:int;
addDisplayItem(getDisplayItem(object));
if ((object is DisplayObjectContainer)){
container = (object as DisplayObjectContainer);
i = 0;
while (i < container.numChildren) {
buildTree(container.getChildAt(i));
i++;
};
};
}
private function addDisplayItemAt(index:int, item:DisplayItemData):void{
if ((((item.displayObject == this)) && (this.contains(item.displayObject)))){
return;
};
if (_data.indexOf(item) < 0){
_data.splice(index, 0, item);
};
}
public function onInspect(object:DisplayObject):void{
this.inspectDisplayItem(this.getDisplayItem(object));
this.drawList();
}
private function hasDisplayItem(item:DisplayItemData):Boolean{
return ((_data.indexOf(item) >= 0));
}
public function getDisplayItem(object:DisplayObject):DisplayItemData{
if (_map[object] == null){
_map[object] = new DisplayItemData(object);
(_map[object] as DisplayItemData).addEventListener(DisplayItemEvent.EXPAND, onExpandCollapseItem);
(_map[object] as DisplayItemData).addEventListener(DisplayItemEvent.COLLAPSE, onExpandCollapseItem);
};
return (_map[object]);
}
}
}//package cn.itamt.utils.inspector.ui
Section 38
//InspectorColorStyle (cn.itamt.utils.inspector.ui.InspectorColorStyle)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.utils.*;
public class InspectorColorStyle {
public static const SHAPE:uint = 16737791;
public static const SPRITE:uint = 0xFF3300;
public static const TYPE_ARR:Array = ["sprite", "movie clip", "bitmap", "shape", "textfield", "loader", "video", "avm1movie", "static text", "morphshape"];
public static const BITMAP:uint = 0x99CC00;
public static const DEFAULT_BG:uint = 0x393939;
public static const DISPLAY_OBJECT:uint = 0xCCCCCC;
public static const STAGE:uint = 0;
public static const MOVIE_CLIP:uint = 39167;
public function InspectorColorStyle(){
super();
}
public static function getObjectColor(src:DisplayObject):uint{
var lineColor:uint;
var mc:Array = [];
var str:String = getQualifiedClassName(src);
var classNameStr:String = str.slice(((str.lastIndexOf("::"))>=0) ? (str.lastIndexOf("::") + 2) : 0);
switch (classNameStr){
case "Shape":
lineColor = InspectorColorStyle.SHAPE;
break;
case "Stage":
lineColor = InspectorColorStyle.STAGE;
break;
case "Bitmap":
lineColor = InspectorColorStyle.BITMAP;
break;
case "MovieClip":
lineColor = InspectorColorStyle.MOVIE_CLIP;
break;
case "Sprite":
lineColor = InspectorColorStyle.SPRITE;
break;
default:
if ((src is Shape)){
lineColor = InspectorColorStyle.SHAPE;
} else {
if ((src is Bitmap)){
lineColor = InspectorColorStyle.BITMAP;
} else {
if ((src is MovieClip)){
lineColor = InspectorColorStyle.MOVIE_CLIP;
} else {
if ((src is Stage)){
lineColor = InspectorColorStyle.STAGE;
} else {
if ((src is Sprite)){
lineColor = InspectorColorStyle.SPRITE;
} else {
if ((src is DisplayObject)){
lineColor = InspectorColorStyle.DISPLAY_OBJECT;
};
};
};
};
};
};
};
return (lineColor);
}
}
}//package cn.itamt.utils.inspector.ui
Section 39
//InspectorFilterClassButton (cn.itamt.utils.inspector.ui.InspectorFilterClassButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorFilterClassButton extends InspectorViewOperationButton {
public function InspectorFilterClassButton(){
super();
_tip = InspectorLanguageManager.getStr("SetFilterClass");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 0);
graphics.moveTo(21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.beginFill(0xFFFFFF);
graphics.moveTo(13.15, 9.8);
graphics.curveTo(13.9, 10.5, 13.9, 11.5);
graphics.curveTo(13.9, 12.5, 13.15, 13.2);
graphics.curveTo(12.45, 13.9, 11.5, 13.9);
graphics.curveTo(10.55, 13.9, 9.8, 13.2);
graphics.curveTo(9.1, 12.5, 9.1, 11.5);
graphics.curveTo(9.1, 10.5, 9.8, 9.8);
graphics.curveTo(10.55, 9.1, 11.5, 9.1);
graphics.curveTo(12.45, 9.1, 13.15, 9.8);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(15, 5.3);
graphics.lineTo(7.6, 5.3);
graphics.curveTo(4.15, 5.3, 4.15, 8.75);
graphics.lineTo(4.15, 13.95);
graphics.curveTo(4.15, 17.4, 7.6, 17.4);
graphics.lineTo(15, 17.4);
graphics.curveTo(18.45, 17.4, 18.45, 13.95);
graphics.lineTo(18.45, 8.75);
graphics.curveTo(18.45, 5.3, 15, 5.3);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0);
graphics.moveTo(21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.beginFill(0xFFFFFF);
graphics.moveTo(13.15, 9.8);
graphics.curveTo(13.9, 10.5, 13.9, 11.5);
graphics.curveTo(13.9, 12.5, 13.15, 13.2);
graphics.curveTo(12.45, 13.9, 11.5, 13.9);
graphics.curveTo(10.55, 13.9, 9.8, 13.2);
graphics.curveTo(9.1, 12.5, 9.1, 11.5);
graphics.curveTo(9.1, 10.5, 9.8, 9.8);
graphics.curveTo(10.55, 9.1, 11.5, 9.1);
graphics.curveTo(12.45, 9.1, 13.15, 9.8);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(15, 5.3);
graphics.lineTo(7.6, 5.3);
graphics.curveTo(4.15, 5.3, 4.15, 8.75);
graphics.lineTo(4.15, 13.95);
graphics.curveTo(4.15, 17.4, 7.6, 17.4);
graphics.lineTo(15, 17.4);
graphics.curveTo(18.45, 17.4, 18.45, 13.95);
graphics.lineTo(18.45, 8.75);
graphics.curveTo(18.45, 5.3, 15, 5.3);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 0);
graphics.moveTo(21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.beginFill(0);
graphics.moveTo(13.15, 9.8);
graphics.curveTo(13.9, 10.5, 13.9, 11.5);
graphics.curveTo(13.9, 12.5, 13.15, 13.2);
graphics.curveTo(12.45, 13.9, 11.5, 13.9);
graphics.curveTo(10.55, 13.9, 9.8, 13.2);
graphics.curveTo(9.1, 12.5, 9.1, 11.5);
graphics.curveTo(9.1, 10.5, 9.8, 9.8);
graphics.curveTo(10.55, 9.1, 11.5, 9.1);
graphics.curveTo(12.45, 9.1, 13.15, 9.8);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(15, 5.3);
graphics.lineTo(7.6, 5.3);
graphics.curveTo(4.15, 5.3, 4.15, 8.75);
graphics.lineTo(4.15, 13.95);
graphics.curveTo(4.15, 17.4, 7.6, 17.4);
graphics.lineTo(15, 17.4);
graphics.curveTo(18.45, 17.4, 18.45, 13.95);
graphics.lineTo(18.45, 8.75);
graphics.curveTo(18.45, 5.3, 15, 5.3);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0);
graphics.moveTo(21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.beginFill(0x99CC00);
graphics.moveTo(13.15, 9.8);
graphics.curveTo(13.9, 10.5, 13.9, 11.5);
graphics.curveTo(13.9, 12.5, 13.15, 13.2);
graphics.curveTo(12.45, 13.9, 11.5, 13.9);
graphics.curveTo(10.55, 13.9, 9.8, 13.2);
graphics.curveTo(9.1, 12.5, 9.1, 11.5);
graphics.curveTo(9.1, 10.5, 9.8, 9.8);
graphics.curveTo(10.55, 9.1, 11.5, 9.1);
graphics.curveTo(12.45, 9.1, 13.15, 9.8);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(15, 5.3);
graphics.lineTo(7.6, 5.3);
graphics.curveTo(4.15, 5.3, 4.15, 8.75);
graphics.lineTo(4.15, 13.95);
graphics.curveTo(4.15, 17.4, 7.6, 17.4);
graphics.lineTo(15, 17.4);
graphics.curveTo(18.45, 17.4, 18.45, 13.95);
graphics.lineTo(18.45, 8.75);
graphics.curveTo(18.45, 5.3, 15, 5.3);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 40
//InspectorLabelButton (cn.itamt.utils.inspector.ui.InspectorLabelButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.text.*;
public class InspectorLabelButton extends InspectorViewOperationButton {
protected var _minW:Number;// = 52
protected var _active:Boolean;
protected var state:Sprite;
protected var _label:String;// = "按钮"
protected var _minH:Number;// = 21
public function InspectorLabelButton(label:String="按钮", active:Boolean=false):void{
super();
_label = label;
state = new Sprite();
_active = active;
update();
}
public function get active():Boolean{
return (_active);
}
private function update():void{
state.graphics.clear();
while (state.numChildren) {
state.removeChildAt(0);
};
var tf:TextField = InspectorTextField.create(_label, (_active) ? 0x232323 : 0x666666);
tf.autoSize = "left";
var w:Number = ((tf.width < _minW)) ? _minW : tf.width;
var h:Number = ((tf.height < _minH)) ? _minH : tf.height;
state.graphics.beginFill((_active) ? 0xCCCCCC : 0x282828);
state.graphics.drawRoundRect(0, 0, w, h, 4, 4);
state.graphics.endFill();
tf.x = ((state.width / 2) - (tf.width / 2));
tf.y = ((state.height / 2) - (tf.height / 2));
state.addChild(tf);
this.upState = (this.downState = (this.overState = (this.hitTestState = this.state)));
}
public function set active(value:Boolean):void{
_active = value;
update();
}
}
}//package cn.itamt.utils.inspector.ui
Section 41
//InspectorRightMenu (cn.itamt.utils.inspector.ui.InspectorRightMenu)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.lang.*;
import flash.ui.*;
import cn.itamt.utils.inspector.consts.*;
public class InspectorRightMenu extends BaseInspectorView {
private var _dspMode:ContextMenuItem;
private var _objs:Array;
private var _off:ContextMenuItem;
private var _sOn:Boolean;
private var _pView:ContextMenuItem;
private var _pOn:Boolean;
private var _sView:ContextMenuItem;
private var _intMode:ContextMenuItem;
private var _on:ContextMenuItem;
public static const ON:String = "tInspector on";
public static const ID:String = "右键菜单";
public static const OFF:String = "tInspector off";
public function InspectorRightMenu(on:Boolean=true, mode:String="DisplayObject"){
super();
_on = new ContextMenuItem(ON);
_on.separatorBefore = true;
_on.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_off = new ContextMenuItem(OFF);
_off.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_dspMode = new ContextMenuItem(InspectMode.DISPLAY_OBJ);
_dspMode.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_intMode = new ContextMenuItem(InspectMode.INTERACTIVE_OBJ);
_intMode.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_pView = new ContextMenuItem(InspectorLanguageManager.getStr("PropertyPanel"));
_pView.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_sView = new ContextMenuItem(InspectorLanguageManager.getStr("StructurePanel"));
_sView.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect);
_on.enabled = on;
_off.enabled = !(on);
_dspMode.caption = ((mode)==InspectMode.DISPLAY_OBJ) ? (InspectMode.DISPLAY_OBJ + "\t√") : InspectMode.DISPLAY_OBJ;
_intMode.caption = ((mode)==InspectMode.INTERACTIVE_OBJ) ? (InspectMode.INTERACTIVE_OBJ + "\t√") : InspectMode.INTERACTIVE_OBJ;
}
override public function onUnregisterView(viewClassId:String):void{
switch (viewClassId){
case "PropertyPanel":
_pOn = false;
_pView.caption = InspectorLanguageManager.getStr("PropertyPanel");
break;
case "StructurePanel":
_sOn = false;
_sView.caption = InspectorLanguageManager.getStr("StructurePanel");
break;
};
}
private function onMenuItemSelect(evt:ContextMenuEvent):void{
switch (evt.target){
case _on:
_inspector.turnOn();
break;
case _off:
_inspector.turnOff();
break;
case _dspMode:
_inspector.setInspectFilter(DisplayObject);
break;
case _intMode:
_inspector.setInspectFilter(InteractiveObject);
break;
case _pView:
if (_pOn){
_inspector.unregisterViewById("PropertyPanel");
} else {
_inspector.registerViewById("PropertyPanel");
};
break;
case _sView:
if (_sOn){
_inspector.unregisterViewById("StructurePanel");
} else {
_inspector.registerViewById("StructurePanel");
};
break;
};
}
override public function onTurnOff():void{
_on.enabled = true;
_off.enabled = false;
_dspMode.enabled = (_intMode.enabled = (_pView.enabled = (_sView.enabled = false)));
}
override public function onRegister(inspector:Inspector):void{
this._inspector = inspector;
this.apply(inspector.root);
this.onTurnOff();
}
override public function onRegisterView(viewClassId:String):void{
switch (viewClassId){
case "PropertyPanel":
_pOn = true;
_pView.caption = (InspectorLanguageManager.getStr("PropertyPanel") + "\t√");
break;
case "StructurePanel":
_sOn = true;
_sView.caption = (InspectorLanguageManager.getStr("StructurePanel") + "\t√");
break;
};
}
override public function getInspectorViewClassID():String{
return (InspectorRightMenu.ID);
}
public function apply(obj:InteractiveObject):void{
var menu:ContextMenu;
if (_objs == null){
_objs = [];
};
if (_objs.indexOf(obj) < 0){
_objs.push(obj);
menu = (obj.contextMenu as ContextMenu);
if (menu == null){
menu = new ContextMenu();
};
menu.customItems.push(_on);
menu.customItems.push(_off);
menu.customItems.push(_dspMode);
menu.customItems.push(_intMode);
menu.customItems.push(_pView);
menu.customItems.push(_sView);
obj.contextMenu = menu;
};
}
override public function onInspectMode(clazz:Class):void{
if (clazz == DisplayObject){
_dspMode.caption = (InspectMode.DISPLAY_OBJ + "\t√");
_intMode.caption = InspectMode.INTERACTIVE_OBJ;
} else {
if (clazz == InteractiveObject){
_dspMode.caption = InspectMode.DISPLAY_OBJ;
_intMode.caption = (InspectMode.INTERACTIVE_OBJ + "\t√");
};
};
}
override public function onTurnOn():void{
_on.enabled = false;
_off.enabled = true;
_dspMode.enabled = (_intMode.enabled = (_pView.enabled = (_sView.enabled = true)));
}
}
}//package cn.itamt.utils.inspector.ui
Section 42
//InspectorScroller (cn.itamt.utils.inspector.ui.InspectorScroller)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
public class InspectorScroller extends Sprite {
private var _block:SimpleButton;
private var _totalVal:Number;
private var _pMouseY:Number;
private var inited:Boolean;
private var _h:Number;
private var _value:Number;
private var _w:Number;
public function InspectorScroller(w:Number=15, h:Number=260, val:Number=0, totalVal:Number=100){
super();
_w = w;
_h = h;
_value = ((((val < 0)) ? 0 : val > totalVal)) ? totalVal : val;
_totalVal = totalVal;
_block = new SimpleButton(buildBlockShape(_w, (_h / 3), 0x4D4D4D), buildBlockShape(_w, (_h / 3), 0xFFFFFF), buildBlockShape(_w, (_h / 3), 0xFFFFFF), buildBlockShape(_w, (_h / 3), 0x4D4D4D));
_block.y = ((_value / _totalVal) * (_h - _block.height));
addChild(_block);
this.relayout();
addEventListener(Event.ADDED_TO_STAGE, onAdd);
addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
}
override public function dispatchEvent(evt:Event):Boolean{
if (((hasEventListener(evt.type)) || (evt.bubbles))){
return (super.dispatchEvent(evt));
};
return (false);
}
private function onAdd(evt:Event):void{
if (inited){
return;
};
inited = true;
_block.addEventListener(MouseEvent.MOUSE_DOWN, onDownBlock);
this.stage.addEventListener(MouseEvent.MOUSE_UP, onUpBlock);
}
private function onRemove(evt:Event):void{
inited = false;
_block.removeEventListener(MouseEvent.MOUSE_DOWN, onDownBlock);
this.stage.removeEventListener(MouseEvent.MOUSE_UP, onUpBlock);
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onDrag);
}
private function onUpBlock(evt:MouseEvent):void{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onDrag);
}
public function relayout():void{
graphics.clear();
graphics.beginFill(0x232323);
graphics.drawRoundRect(0, 0, _w, _h, 5, 5);
graphics.endFill();
_block.upState = buildBlockShape(_w, (_h / 3), 0x4D4D4D);
_block.downState = buildBlockShape(_w, (_h / 3), 0xFFFFFF);
_block.overState = buildBlockShape(_w, (_h / 3), 0xFFFFFF);
_block.hitTestState = buildBlockShape(_w, (_h / 3), 0x4D4D4D);
}
public function dispose():void{
}
public function set value(val:Number):void{
_value = val;
_block.y = ((_value / _totalVal) * (_h - _block.height));
}
private function buildBlockShape(w:Number, h:Number, color:uint):Shape{
var sp:Shape = new Shape();
sp.graphics.beginFill(color);
sp.graphics.drawRoundRect(0, 0, w, h, 5, 5);
sp.graphics.endFill();
return (sp);
}
private function onDownBlock(evt:MouseEvent):void{
_pMouseY = _block.mouseY;
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, onDrag);
}
public function get value():Number{
return (_value);
}
public function resize(w:Number, h:Number):void{
_w = w;
_h = h;
this.relayout();
_block.y = ((_value / _totalVal) * (_h - _block.height));
}
private function onDrag(evt:MouseEvent):void{
var ty:Number = (this.mouseY - _pMouseY);
if (ty < 0){
ty = 0;
};
if (ty > (_h - _block.height)){
ty = (_h - _block.height);
};
_block.y = ty;
var t:int = Math.round(((_block.y * _totalVal) / (_h - _block.height)));
if (_value != t){
_value = t;
dispatchEvent(new Event(Event.CHANGE));
};
}
}
}//package cn.itamt.utils.inspector.ui
Section 43
//InspectorSymbolBmd (cn.itamt.utils.inspector.ui.InspectorSymbolBmd)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.*;
import flash.utils.*;
public class InspectorSymbolBmd extends BitmapData {
var bmdBase64Str:String;// = "AAABQAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/X19fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAlAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yrCX/8yzgP//5sz/8Na1/7uigP/w1rX/3MKX///mzP/cwpf//+bM/7OZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP84Vk4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAADcAAABPAAAATwAAADcAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9TU1P/VVVV/1dXV/9YWFj/WVlZ/1lZWf9ZWVn/WVlZ/1hYWP9XV1f/VVVV/1NTUwAAAAAAAAAAAAAAAAAAAAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQAAAAAAAAAAAAAAAAAAAAAA/0dHi/9IR4v/R0eK/0hHi/9HR4v/R0iL/0dHi/9HR4v/R0iL/0dHi/9HR4v/SEeLAAAAAAAAAAD/mZmZ//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P9fX18AAAAAAAAAAAAAAAD/R0eL/0hHi/9HR4r/SEeL/0dHi/9HSIv/R0eL/0dHi/9HSIv/R0eL/0dHi/9IR4sAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/mZmZ//////////////////////////////////////////////////////////////////////9fX18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACUAAAAxAAAAMQAAAEoAAAD/+vr6//X19f/z8/P/8PDw/+zs7P/m5ub/wMDA/9/f3/+urq4+AAAADAAAAAAAAAAAAAAAAAAAAP9mM///ZjP//2Yz//9mM///ZjP//2Yz//9mM///ZjP//2Yz//9mM///ZjP//2Yz/wAAAAAAAAAAAAAAAAAAAAD/ZGRk/2RkZP9jY2P/ZGRk/2RkZP9kZGT/ZGRk/2RkZP9kZGT/ZGRk/2RkZP9kZGQAAAAAAAAAAAAAAAAAAAAAAAAAAP+UYS7/m2ge/+Cta///zJn/gU4P/+Cta/+4hS7//8yZ/7iFLv//zJn/ZjMAAAAAAAAAAAD/4DxR/+M/Vf/mQ1n/6Ude/+xLYv/uTmb/8VJq//NUbP/zVG3/8VJq/+9PZ//sTGP/6khf/+dFW//kQVYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zFOSgAAAAAAAAAAAAAAAP84VlMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAuAAAAWQAAAJk+GQCZPxkAWQAAAC4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAASAAAAKAAAADIAAAA3AAAANwAAADcAAAAyAAAAKAAAABIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/U1NT/1dXV/9aWlr/XFxc/15eXv9eXl7/Xl5e/15eXv9eXl7/Xl5e/1xcXP9aWlr/V1dX/1NTUwAAAAAAAAAA/wCZAP+goNf/0ND//9DQ///Q0P//0ND//9DQ///Q0P//0ND//9DQ///Q0P//0ND//6Cg1/8AmQAAAAAAAAAAAP9LS5D/oKDX/9DQ///Q0P//0ND//9DQ///Q0P//0ND//9DQ///Q0P//0ND//9DQ//+goNf/S0uQAAAAAP+ZmZn/+Pj4/5nM//+ZzP//mcz//5nM//+ZzMz/mczM/5nMzP+ZzP//mcz//5nM//+ZzP//+Pj4/19fXwAAAAAAAAAA/0tLkP/Qz///0ND//8/Q///Qz///z9D//9DP///Q0P//0ND//9DQ///Q0P//0ND//9DQ//9LS5AAAAAAAAAAAP8AAAD/6en//+np///p6f//6en//+np///p6f//6en//+np///p6f//6en//+np///p6f//AAAAAAAAAP+ZmZn///////8VAP//DgD//woA//8OAP//FQD//x4A//8oAP//MQD//zoA//9EAP//TgD//+rf/19fXwAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAA/9cBAf/eAQH/3wEB/9kBAf/QAQH/xwEB/74BAf+0AQH/qgEB/6ABAf+jo6P/+/v7/9/f3/+qqqo+AAAADAAAAAAAAAD/ZjP//+np///p6f//6en//+np///p6f//6en//+np///p6f//6en//+np///p6f//6en//2Yz/wAAAAAAAAAA/2hoaP/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P9oaGgAAAAAAAAAAAAAAAAAAAAA/5RhLv/IlVb/m2ge///Mmf+baB7/uIUu/7iFLv/grWv/uIUu/+Cta/9vRh0AAAAAAAAAAP/hPVL/5EFW/+dEW//qSF//7Uxj/+9QaP/yVGz/9Vdw//VYcP/zVGz/8FBo/+1MZP/qSV//50Vb/+RBVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+xrrH/LUg9/7GusQAAAAAAAAAA/zFORQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAEsAAAB2AAAA641DAOiKQwB2AAAASwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFgAAADsAAABXAAAAZwAAAG4AAABuAAAAbgAAAGcAAABXAAAAOwAAABYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9VVVX/Wlpa/15eXv9gYGD/YmJi/2JiYv9iYmL/YmJi/2JiYv9iYmL/YGBg/15eXv9aWlr/VVVVAAAAAAAAAAD/AJkA/9PT//8AmQD//////////////////////wCZAP/q6vL//////wCZAP8AmQD/09P//wCZAAAAAAAAAAAA/09Plv/T0///T0+W//////////////////////9gYKD/6ury//////96erD/T0+W/9PT//9PT5YAAAAA/5mZmf/4+Pj/mczM/5nM//+ZzMz/mczM/5mZZv+ZmTP/Zpkz/5mZZv+ZzMz/mcz//5nMzP/4+Pj/X19fAAAAAAAAAAD/T0+W/9TV///U1f//0rPK/8x1aP/HRRz/zHVo/9Kzyv/V1f//1dX//9XV///V1f//1dX//09PlgAAAAAAAAAA/wAAAP/p6f//r6+//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ojo//+np//8AAAAAAAAA/5mZmf///////xMA//8KAP//AAD//woA//8TAP//HQD//yYA//8wAP//OgD//0MA//9NAP//6t//X19fAAAAAP9OTk7/AAAA/2ZmZv89PT3/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/5mZmQAAAAAAAAAAAAAAADEAAAD/0gEB//kBAf/8AQH/8wEB/+sBAf/iAQH/2QEB/9ABAf/DAQH/lwEB/4ODg//7+/v/+/v7/9/f3/+srKwlAAAAAAAAAP9mM///6en//5+C//+GYP//hmD//4Zg//+GYP//hmD//4Zg//+GYP//hmD//9DH///p6f//ZjP/AAAAAAAAAAD/bW1t/97e3v/e3t7/ubm5/5OTk/9sbGz/k5OT/7m5uf/f39//39/f/9/f3//f39//39/f/21tbQAAAAAAAAAAAAAAAAAAAAD/lGEu/+Ctev+PXAD//8yZ/8iVVv+HVAD/mWYA/7iFLv+ZZgD/uIUu/3dXNgAAAAAAAAAA/+A8Uf/jP1X/5kNZ/+hHXf/rSmH/7U1k/+9PZ//wUWn/8FFo/+9PZv/tTGT/6klg/+hGXP/lQlj/4j9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQEAAAAAAAAAAAAAAAAAAAAA/zFWSv8xTkr/LU5F/yhIPf8tcHz/LXB8/7Gusf8oRTn/sa6xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAASAAAAKAAAADgAAABPAAAAbgAAAKc1FQD8pVkA/KRZAKUxFABuAAAASwAAADAAAAAVAAAAAgAAAAAAAAAAAAAAAQAAABYAAAA/AAAAYwAAALd2SgD7pFIA/5o/AP+aPwD/mj8A+6RSALd2SgBjAAAAPwAAABYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1dXV/9cXFz/YGBg/2NjY/9kZGT//////////////////////2RkZP9jY2P/YGBg/1xcXP9XV1cAAAAAAAAAAP8AmQD/19f//wCZAP8AmQD/AJkA/9XV5///////AJkA/7q61///////xsbe/wCZAP/X1///AJkAAAAAAAAAAAD/U1Oc/9fX//9TU5z/U1Oc/1NTnP/V1ef//////4yMvf+6utf//////8bG3v99fbT/19f//1NTnAAAAAD/mZmZ//j4+P+ZzP//mczM/2aZM/+ZzAD/mcxm/5nMAP9mmQD/M5kA/2aZZv+ZzMz/mcz///j4+P9fX18AAAAAAAAAAP9TU5z/29v//9vb///Od2j/xjwO/8Y8Dv/GPA7/znho/9vb///b2///29v//9vb///b2///U1OcAAAAAAAAAAD/AAAA/+np//+vr7//AAAA/ysrL/+vr7//Kysv/wAAAP+Dg4//oKCv/w4OD/86Oj//6en//wAAAAAAAAD/mZmZ////////FQD//w4A//8KAP//DgD//xUA//8eAP//KAD//zEA//86AP//RAD//04A///q3/9fX18AAAAA/wAAAP89PT3/6vvt/9bW1v/q++3/6vvt/+r77f/q++3/6vvt/+r77f/q++3/zMza/2ZmZgAAAAAAAAAA/wAAAP+zAQH/2AEB/9oBAf/aAQH/2QEB/9UBAf/QAQH/yAEB/7sBAf+EAQH/mJiY/4iIiP+IiIj/lJSU/6KiojEAAAAAAAAA/2Yz///p6f//hmD//24+///Qx///yLv//2Yz//+GYP//6en//5d3//9mM///yLv//+np//9mM/8AAAAAAAAAAP9xcXH/4uLi/+Li4v+Tk5P/ZWVl/2VlZf9lZWX/k5OT/+Li4v/i4uL/4uLi/+Li4v/i4uL/cXFxAAAAAAAAAAAAAAAAAAAAAP+UYS7//8yZ/35LBv/grWv/4K1r/3lGBf9mMwD/ZjMA/2hAF/9wTy8AAAAAAAAAAAAAAAD/3jlO/+E9Uv/jP1X/5UJY/xISEv8SEhL/EhIS/xISEv/qSWD/fi04/xISEv/mRFr/5EFX/+I+U//gO1AAAAAAAAAAAAAAAAAAAAAAAAAAAP8BAQH/3IJB/96BPv/ifjf/5nou/+t2Jv/vcx3/9G8V/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AQEB/96BPv/cgkH/3oE+/+J+N//mei7/63Ym/+9zHf8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAP+xrrH/LXB8/+fz2//H26//LXB8/y1wfP8tcHwAAAAA/yA5Mv8oQTkAAAAAAAAAAAAAAAABAAAAFgAAADsAAABXAAAAawAAAHwAAACMAAAA641EAP/JjAD/xogA5ohGAIwAAAB1AAAAXwAAAEUAAAAuAAAAEgAAAAEAAAASAAAAOwAAAGMAAADhnFwA/5pAAP+5awD/6q4A//jDAP/rsAD/u20A/5pAAOGcXABjAAAAOwAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/WFhY/15eXv9iYmL/ZGRk////////////ZmZm/2ZmZv///////////2RkZP9iYmL/Xl5e/1hYWAAAAAAAAAAA/wCZAP/c3P//AJkA/wCZAP8KmA7////////////Cwt3/AJkA/93d7P///////////9zc//8AmQAAAAAAAAAAAP9XV6L/3Nz//1dXov9XV6L/ioq+////////////wsLd/4GBuf/d3ez////////////c3P//V1ijAAAAAP+ZmZn/+Pj4/5nM//+ZmZn/ZpkA/5nMAP+ZzAD/mcwA/2aZAP8AmQD/mZmZ/5nM//+ZzP//+Pj4/19fXwAAAAAAAAAA/1dXov/i4v//4uL//+NaLf/iUSH/4lEg/+NRIP/jWi7/4uL//+Li///i4v//4uL//+Li//9XWKMAAAAAAAAAAP8AAAD/6en//6+vv/8AAAD/zMzf/+np//86Oj//AAAA/6+vv//p6f//dHR//zo6P//p6f//AAAAAAAAAP+ZmZn///////8bAP//FQD//xMA//8VAP//GwD//yIA//8rAP//NAD//z0A//9GAP//TwD//+rf/19fXwAAAAD/AAAA/wAAAP/a2PX/mZmZ/+r77f9/fY3/f32N/399jf9/fY3/f32N/399jf/q++3/iYiq/2ZmZv8AAAD/AAAA/4EBAf9jAQH/YwEB/2MBAf9jAQH/YwEB/2MBAf9jAQH/YwEB/2YBAf/i4uL/6Ojo/+Pj4//Hx8f/k5OTMQAAAAAAAAD/ZjP//+np//+GYP//p47//+np///Iu///ZjP//4Zg///p6f//4d7//24+///Iu///6en//2Yz/wAAAAAAAAAA/3Z2dv/j4+P/4+Pj/4KCgv97e3v/e3t7/3t7e/+CgoL/4+Pj/+Pj4//j4+P/4+Pj/+Pj4/93d3cAAAAAAAAAAAAAAAAAAAAA/5RhLv//zJn/mWYA/4RRB/9mMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bNUn/3jhN/+A7UP/hPVL/EhIS/2EZIf/TJTj/0yU5/+VCWP+AIy7/EhIS/+I+U//gO1D/3jlO/9w2SgAAAAAAAAAAAAAAAAAAAAD/AgIC/9yCQf/Xhkr/3IJB/+B+Of8AAAD/6ncn/+9zHv/0bxX/+GsM/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAA/wICAv/gfjn/3IJB/9eGSv/cgkH/4H45/+V7MP/qdyf/73Me//RvFf8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAP8rbnz/x9yv/y5qIv/b68z/1ebC/8bcrv8sb3v/sa6x/7Gusf8tTj3/MVZKAAAAABIAAAA7AAAAYQAAAIcPBgCkLBEAtz8ZANhtLwD9pVQA/+q6AP/kswD8pVUA1GcuALZCGwCeLRIAcwAAAFkAAAA3AAAAEgAAACgAAABXAAAAt3ZKAP+eRQD//mYA//3KAP//zAD//8wA///MAP/9yQD//mYA/5xCALd2SgBXAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9ZWVn/Xl5e/2JiYv9lZWX/ZmZm/2ZmZv9mZmb/ZmZm////////////ZWVl/2JiYv9eXl7/WVlZAAAAAAAAAAD/AJkA/+Lh//8AmQD/AJkA//////////////////7+//+trdP/AJkA/76+3P/r6/T/4eL//wCZAAAAAAAAAAAA/1xcqP/i4f//XFyo/42Nwv/////////////////+/v//ra3T/4WFvv++vtz/6+v0/+Hi//9dXKgAAAAA/5mZmf/4+Pj/mcz//5nMZv+ZzJn/mcxm/5nMAP+ZzAD/M5kA/zOZM/8zmWb/mZmZ/5nM///4+Pj/X19fAAAAAAAAAAD/XFyo/+np///p6f//95d///9mM///ZjP//2Yz//eXf//p6f//1dX4/+np///p6f//6en//11cqAAAAAAAAAAA/wAAAP/p6f//2trv/6+vv//p6f//6en//zo6P/8AAAD/r6+//+np///a2u//vb3P/+np//8AAAAAAAAA/5mZmf///////yIA//8eAP//HQD//x4A//8iAP//KQD//zAA//84AP//QAD//0kA//9SAP//6t//X19fAAAAAP8AAAD/mZmZ/wAAAP9mZmb/6vvt/399jf+84f//sNX6/6LH7P+ix+z/JjhS/+r77f98e5D/6vvt/ycnJ/8AAAAlAAAAMQAAADEAAABXAAAA/9PT0//Q0ND/0NDQ/9DQ0P/Q0ND/2NjY/9y3t//HQ0P/wQMD/+7u7v/S0tIxAAAAAAAAAP9mM///6en//9DH///h3v//6en//8i7//9mM///hmD//+np///p6f//0Mf//+He///p6f//ZjP/AAAAAAAAAAD/fHx8/+fn5//n5+f/srKy/5KSkv+SkpL/kpKS/7Kysv/n5+f/29vb/+fn5//n5+f/5+fn/3x8fAAAAAAAAAAAAAAAAAAAAAD/lGEu///Mmf+4hS7/ZjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gwRP/ZM0f/2zVJ/903TP8SEhL/gB8r/+M3TP/jOE3/3ztQ/34hLP8SEhL/3TdM/9s1Sf/aM0f/2DFEAAAAAAAAAAAAAAAAAAAAAP8DAwP/3oE+/9yCQf/egT7/4n43/wAAAP/rdib/73Md//RvFf/5awz/AQEBAAAAAAAAAAAAAAAAAAAAAAAAAAD/AwMD/+J+N//egT7/3IJB/96BPv/ifjf/5nou/+t2Jv/vcx3/9G8V/wEBAQAAAAAAAAAA/zhWU/84VlMAAAAA/7Gusf8qbXv/2+rM/+fz2//b68z/y9+0/7jSnf8qbXz/sa6xAAAAAAAAAAAAAAAAJAAAAFEAAACSLREA/JdBAPqdTQD/smYA/8J9AP/tuAD/98UA//HBAP/grAD/tnAA/6xgAPqaSgD/mT4AgRQIAE8AAAAkAAAAMgAAAGcAAAD7pVIA/8B1AP//zAD//mYA///MAP//zAD//8wA//5mAP//zAD/uGkA+6VSAGcAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1lZWf9eXl7/YmJi/2VlZf9mZmb/ZmZm/2ZmZv///////////2ZmZv9lZWX/YmJi/15eXv9ZWVkAAAAAAAAAAP8AmQD/6Of//wCZAP8AmQD///////////8AmQD/9vb7//7+///GxuL/lZXJ/wCZAP/o6P//AJkAAAAAAAAAAAD/YWGv/+jn//9hYa//kZHH////////////oaHP//b2+//+/v//xsbi/5WVyf9wcLf/6Oj//2FhsAAAAAD/mZmZ//j4+P+ZzMz/mcxm/2aZZv+ZmTP/mf9m/2aZZv9mmQD/ZmYz/zOZAP8AZgD/mcz///j4+P9fX18AAAAAAAAAAP9hYa//8PD///Dw///z0tL/+Zl///5uP//5mX//89LS/9nZ+P9vb9X/3t76//Dw///w8P//YWGwAAAAAAAAAAD/AAAA/+np///p6f//6en//+np///p6f//Ojo//wAAAP+vr7//6en//+np///p6f//6en//wAAAAAAAAD/mZmZ////////KwD/AMwA/wDMAP8AzAD/AMwA/wDMAP8AzAD/AGQA/wBkAP8AZAD//1YA///r3/9fX18AAAAAAAAAAAAAAAD/mZmZ/wAAAP/q++3/f32N/6zR9v+EqM3/hKjN/4yw1f8mOFL/6vvt/1JSZv+6uND/PT09/wAAAAAAAAAAAAAAAAAAADEAAAD/7Ozs/+rq6v/q6ur/6urq/+np6f/eubn/ww4O/8EDA//ERET/9PT0//T09DEAAAAAAAAA/2Yz///p6f//6en//+np///p6f//yLv//2Yz//+GYP//6en//+np///p6f//6en//+np//9mM/8AAAAAAAAAAP+CgoL/6+vr/+vr6//X19f/s7Oz/5eXl/+zs7P/19fX/93d3f+ampr/4eHh/+vr6//r6+v/goKCAAAAAAAAAAD/ioqs/0dHiv+UYS7//8yZ/7iFLv9mMwD/R0eK/0dHiv9HR4r/R0eK/0dHiv9HR4r/R0eK/4qKrAAAAAD/1Cs+/9UtQP/XL0L/2DFE/xISEv8SEhL/EhIS/zEXGv/aM0f/fB4p/xISEv/YMET/1i5C/9UtQP/TKj0AAAAAAAAAAAAAAAAAAAAA/wMDA//ifjf/4H45/+J+N//kezH/AAAA/+x1I//xchv/9W4S//pqCv8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAP8DAwP/5Hsx/+J+N//gfjn/4n43/+R7Mf/oeCr/7HUj//FyG//1bhL/AQEBAAAAAAAAAAAAAAAAAAAAAP8xTkX/KEU5/ydqe//V58L/2+vM/5LBf//G267/ttKZ/6bJh/8na3oAAAAAAAAAAAAAAAAkAAAAUQAAAIUVCADlh0QA/7NsAP/hsgD/7b4A//fFAP/8ygD/88IA/+m6AP/fsgD/06YA/69pAOeGQgCCEAYAUQAAACQAAAA3AAAAbgAAAP+aQAD/67AA///MAP//zAD//mYA///MAP/+ZgD//8wA///MAP/iowD/mj8AbgAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/WVlZ/15eXv9iYmL/ZWVl/2ZmZv9mZmb///////////9mZmb/ZmZm/2VlZf9iYmL/Xl5e/1lZWQAAAAAAAAAA/wCZAP/u7f//AJkA/wCZAP8AmQD/AJkA/wCZAP+kpNP//////////////////////+3t//8AmQAAAAAAAAAAAP9mZrb/7u3//2Zmtv9mZrb/lJTM/2Zmtv9mZrb/pKTT///////////////////////t7f//Zma3AAAAAP+ZmZn/+Pj4//j4+P9mmTP/ZmYA/2ZmM/+ZzJn/M5lm/19fX/+ZZmb/mZlm/zOZM/+ZzJn/+Pj4/19fXwAAAAAAAAAA/2Zmtv/29v//9vb///b2///29v//9vb///f2///29v//oqLn/zc3w/+iouf/9vb///b2//9mZrcAAAAAAAAAAP8AAAD/6en//+np///p6f//6en//+np//86Oj//AAAA/6+vv//p6f//6en//+np///p6f//AAAAAAAAAP+ZmZn///////80AP8AzAD/AMwA/wDMAP8AzAD/AMwA/wDMAP8AZAD/AGQA/wBkAP//WwD//+vf/19fXwAAAAAAAAAAAAAAAAAAAAD/ZmZm/+r77f9/fY3/l7zh/3ugxf97oMX/h6zR/yY4Uv/q++3/fHuQ/9XU7f9SUlL/AAAAAAAAAAAAAAAAAAAAMQAAAP/6+vr/9/f3//f39//39/f/9/f3/8c3N//BAwP/37Cw//b29v/39/f/+Pj4MQAAAAAAAAD/ZjP//+np///p6f//6en//+np///Iu///ZjP//4Zg///p6f//6en//+np///p6f//6en//2Yz/wAAAAAAAAAA/4eHh//u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/u7u7/3d3d/+7u7v/7u7u/+7u7v+Hh4cAAAAA/4WFqP9HR4r//////5RhLv//zJn/uIUu/2YzAP//////////////////////////////////////R0eK/4WFqP/PJTf/0Cc5/9EoO//TKj3/EhIS/18XH//PHzL/3iI2/9QsP/97HCb/EhIS/9IpPP/RKDr/0CY4/84kNgAAAAAAAAAAAAAAAAAAAAD/AwMD/+Z6Lv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/+2kH/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAA/wMDA//oeCr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//dtD/8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAP8jPjL/JGh6/8bcrv/L37T/x9uu/3OnWP+vzpH/n8eB/yRoev8gOTL/LU49AAAAABIAAAA7AAAAYwAAAIoHAgDsjEMA/7x4AP/puwD/8cEA//PCAP/uvgD/5rgA/92xAP+2cwDsikIAjQ4FAGMAAAA7AAAAEgAAADcAAABuAAAA/5k+AP/7xgD//8wA///MAP//zAD//mYA///MAP//zAD//8wA//bAAP+aQABuAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9ZWVn/Xl5e/2JiYv9lZWX/ZmZm/2ZmZv///////////2ZmZv9mZmb/ZWVl/2JiYv9eXl7/WVlZAAAAAAAAAAD/AJkA//Pz//8AmQD/AJkA/wCZAP8AmQD/AJkA/////////////////9ra7///////8/P//wCZAAAAAAAAAAAA/2pqvf/z8///amq9/2pqvf9qar3/amq9/2pqvf/////////////////a2u////////Pz//9rar0AAAAA/5mZmf/4+Pj/+Pj4/8zMzP+ZzGb//8zM/zMzAP8zZjP/zJlm/5mZZv+ZzJn/+Pj4//j4+P/4+Pj/X19fAAAAAAAAAAD/amq9//z7//8YdFD/GHRQ/xh0UP8YdFD/+/v//+Dh9/9WVtH/QEDH/1dX0v/g4Pf/+/v//2tqvQAAAAAAAAAA/wAAAP/p6f//6en//+np///p6f//6en//zo6P/8AAAD/r6+//+np///p6f//6en//+np//8AAAAAAAAA/5mZmf///////z0A//86AP//OgD//zoA//89AP//QAD//0UA//9LAP//UgD//1kA//9gAP//7N//X19fAAAAAAAAAAAAAAAAAAAAAP9mZmb/6vvt/yY4Uv8mOFL/JjhS/yY4Uv8mOFL/JjhS/9z44P9SUlL/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAxAAAA//39/f/7+/v/+fn5//j4+P/gsLD/wQMD/74PD//BNzf/48HB//r6+v/5+fkxAAAAAAAAAP9mM///6en//+np///p6f//6en//8i7//9mM///hmD//+np///p6f//6en//+np///p6f//ZjP/AAAAAAAAAAD/jIyM//Hx8f9DQ0P/Q0ND/0NDQ/9DQ0P/8fHx/+Dg4P+MjIz/fX19/42Njf/g4OD/8fHx/4yMjAAAAAD/TEyR////////////lGEu/+Cta/+4hS7/ZjMA//////////////////////////////////////++vtf/TEyR/8ofMP/MIDL/zSIz/80jNf8SEhL/exkk/9QkN//RJTf/zyQ2/3kaJP8SEhL/zSI0/8whMv/LHzH/yR0uAAAAAAAAAAAAAAAAAAAAAP8DAwP/63Ym/+p3J//rdib/7HUj/wAAAP/ycRj/9W4S//lrCv/9ZwP/AQEBAAAAAAAAAAAAAAAAAAAAAAAAAAD/AwMD/+x1I//rdib/6ncn/+t2Jv/sdSP/73Me//JxGP/1bhL/+WsK/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAA/yhFOf+xrrH/IWd5/7jSnP+10pn/rs6R/1ONPP+Ww3n/ImZ6/7GusQAAAAD/MU5KAQAAABYAAABBAAAAaQAAAJUVCQDqjEgA/8SEAP/ouQD/6boA/+a4AP/gswD/w4cA7o5HAJAJBABpAAAAQQAAABYAAAABAAAANwAAAG4AAAD/mT8A/+isAP//zAD//8wA//5mAP//zAD//mYA///MAP//zAD/4qMA/5o/AG4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1hYWP9eXl7/YmJi/2RkZP9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9kZGT/YmJi/15eXv9YWFgAAAAAAAAAAP8AmQD/9/j//wCZAP8AmQD/AJkA/wCZAP+am9b///////////+am9b/AJkA///////49///AJkAAAAAAAAAAAD/b3DE//f4//9vcMT/b3DE/29wxP9vcMT/mpvW////////////mpvW/29wxP//////+Pf//29vxAAAAAD/mZmZ//j4+P/4+Pj/+Pj4//j4+P/4+Pj/mZlm/2YzM/+ZmZn/+Pj4//j4+P/4+Pj/+Pj4//j4+P9fX18AAAAAAAAAAP9vcMT//////x17V/8de1f/HXxX/x17Vv//////vr7u/0REzf9ERM3/Q0PM/76+7v//////b2/EAAAAAAAAAAD/AAAA/+np///p6f//6en//+np///p6f//Ojo//wAAAP+vr7//6en//+np///p6f//6en//wAAAAAAAAD/mZmZ////////RgD//0QA//9DAP//RAD//0YA//9JAP//TgD//1MA//9ZAP//XwD//2YA///s3/9fX18AAAAAAAAAAAAAAAAAAAAA/2ZmZv/q++3/5ub0/+bm9P/q++3/5ub0/+r77f/q++3/zPfR/wAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAADEAAAD//f39//z8/P/8/Pz/+/v7/8pUVP++AwP/wTc3/782Nv/jwcH/+vr6//r6+jEAAAAAAAAA/2Yz///p6f//6en//+np///p6f//yLv//2Yz//+GYP//6en//+np///p6f//6en//+np//9mM/8AAAAAAAAAAP+SkpL/8/Pz/0lJSf9JSUn/SUlJ/0lJSf/z8/P/zMzM/4KCgv+CgoL/gYGB/8zMzP/z8/P/kpKSAAAAAP9SU5v////////////ItaP/ZjMA/2YzAP/ItaP//////////////////////////////////////76+1/9TU5v/xRgp/8YaKv/HGyv/yBwt/xISEv93GCH/yR0u/8kdLv/JHS7/vBss/xISEv9tFh7/xhoq/8UYKf/EFycAAAAAAAAAAAAAAAAAAAAA/wMDA//vcx3/73Me/+9zHf/xchv/AAAA//VuEv/5awz//GgF//9mAP8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAP8DAwP/8XIb/+9zHf/vcx7/73Md//FyG//zcBf/9W4S//lrDP/8aAX/AQEBAAAAAAAAAAAAAAAAAAAAAAAAAAD/LU5F/7Gusf8fZXn/IGV5/6bJh/+fx4H/lcJ5/zp8K/8fZHgAAAAAAAAAAAAAAAAAAAAAAQAAABsAAABNAAAAfAAAAOB/PQD/xYoA/96yAP/fsgD/3bEA/9itAP+/hADdezwAfAAAAE0AAAAbAAAAAQAAAAAAAAAyAAAAZwAAAPukUgD/u20A//3KAP/+ZgD//8wA///MAP//zAD//mYA///MAP+zYwD7pFIAZwAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/V1dX/1xcXP9gYGD/Y2Nj/2RkZP9lZWX///////////9lZWX/ZGRk/2NjY/9gYGD/XFxc/1dXVwAAAAAAAAAA/wCZAP/8/P//AJkA/wCZAP8AmQD/AJkA/wCZAP+entv/np7b/wCZAP8AmQD///////z8//8AmQAAAAAAAAAAAP90dMv//Pz//3R0y/90dMv/dHTL/3R0y/90dMv/np7b/56e2/90dMv/dHTL///////8/P//dHTLAAAAAP+ZmZn/+Pj4/5mZAP+ZzAD/mZkz/5nMAP+ZmTP/mWYz/5lmAP+ZmTP/mcwA/5mZM/+ZzAD/+Pj4/19fXwAAAAAAAAAA/3R0y///////Jodh/yaGYf8mhmD/JYdh//////9UU9n/U1PZ/1NT2f9TU9n/U1TZ//////90dMsAAAAAAAAAAP8AAAD/6en//+np///p6f//6en//+np//86Oj//AAAA/5GRn//p6f//6en//+np///p6f//AAAAAAAAAP+ZmZn///////9PAP//TgD//00A//9OAP//TwD//1IA//9WAP//WwD//2AA//9mAP//ZgD//+zf/19fXwAAAAAAAAAAAAAAAAAAAAD/ZmZm/+vr7/9/fY3/f32N/zMzZv9/fY3/MzNm/zMzZv/M99H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAP/9/f3//Pz8//z8/P/js7P/vgMD/8E4OP/7+/v/+fn5//f39//6+vr/+vr6MQAAAAAAAAD/ZjP//+np///p6f//6en//+np///Iu///ZjP//4Zg///p6f//6en//+np///p6f//6en//2Yz/wAAAAAAAAAA/5iYmP/z8/P/UVFR/1FRUf9RUVH/UVFR//Pz8/+Pj4//j4+P/4+Pj/+Pj4//j4+P//Pz8/+YmJgAAAAA/1tbp//y8/f/8vL3//Ly9//y8vf/8vL3//Ly9//y8vf/8vL3//Ly9//y8vf/8vP3//Ly9//y8vf/trbS/1tbqP+9FCT/vxQk/8EVJf/CFSX/7Rsw/9gYK//EFib/xBYm/8MWJv/KFif/7Rsw/9YYKv++FCT/vBQk/7oUIwAAAAAAAAAAAAAAAAAAAAD/AwMD//RvFf/0bxX/9G8V//VuEv8AAAD/+WsK//xoBf//ZgD//2YA/wEBAQAAAAAAAAAAAAAAAAAAAAAAAAAA/wMDA//1bhL/9G8V//RvFf/0bxX/9W4S//dtD//5awr//GgF//9mAP8BAQEAAAAAAAAAAAAAAAAAAAAA/zFWSgAAAAAAAAAAAAAAAP8gOTL/HWJ5/x1jeP8dY3n/HWJ5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEMAAAB2AAAA8pFGAP/IlwD/1KoA/8CFAP/AhgD/z6YA/8GQAO+QRwB2AAAAQwAAAAQAAAAAAAAAAAAAACgAAABXAAAAt3ZKAP+aQAD//mYA///MAP//zAD//8wA///MAP//zAD//mYA/5o/ALd2SgBXAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9VVVX/Wlpa/15eXv9gYGD/YmJi/2JiYv9iYmL/YmJi/2JiYv9iYmL/YGBg/15eXv9aWlr/VVVVAAAAAAAAAAD/AZkC//////8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD//////wCZAAAAAAAAAAAA/3l50f//////eXnR/3l50f95edH/eXnR/3l50f95edH/eXnR/3l50f95edH/eXnR//////95eNEAAAAA/5mZmf/4+Pj/M5kA/wCZAP8zmQD/M5kA/zNmAP8zZgD/M2YA/zNmAP8zmQD/M5kA/zOZAP/4+Pj/X19fAAAAAAAAAAD/eXnR//////8ukWr/LpJr/y6Sa/8tkmr//////////////////////////////////////3l40QAAAAAAAAAA/wAAAP/p6f//6en//+np//+9vc//HBwf/wAAAP8AAAD/AAAA/ysrL//p6f//6en//+np//8AAAAAAAAA/5mZmf///////1kA//9XAP//VwD//1cA//9ZAP//WwD//18A//9jAP//ZgD//2YA//9mAP//7N//X19fAAAAAAAAAAAAAAAAAAAAAP9mZmb/5ub0/9XU7f/V1O3/1dTt/9Dh4f/O6tv/zPfR/8z30f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAA//39/f/8/Pz/yEZG/74DA/+7EBD/58XF//z8/P/8/Pz/+/v7//39/f/9/f0xAAAAAAAAAP9mM///6en//+np///p6f//uKT//35V//9mM///ZjP//5d3///Z0v//6en//+np///p6f//ZjP/AAAAAAAAAAD/nJyc//Pz8/9bW1v/XFxc/1xcXP9bW1v/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/5ycnAAAAAD/ZGS0/+Dg6//g4Ov/4ODr/+Dg7P/g4Ov/4ODr/+Dg6//g4Ov/4ODr/+Dg7P/g4Oz/4ODr/+Dg6/+rq8v/ZGS0/7ETIv+zEyL/tRMi/7YTI/+3FCP/txQj/7gUI/+4FCP/txQj/7YUI/+1EyL/tBMi/7ITIv+wEyH/rhIhAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA//hrDP/5awz/+moK//tpB//9ZwP//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP/5awz/+GsM//lrDP/6agr/+2kH//1nA///ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yNBMv+xrrH/sa6xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAASQAAAHoAAAD5lkUA/7yHAP6iVgDyj0IA7YlFAP6iWAD/t4IA9pRHAHoAAABJAAAAFgAAAAAAAAAAAAAAEgAAADsAAABjAAAA4ZxcAP+cQgD/umwA/+WoAP/zuwD/3ZwA/7NjAP+aPwDhnFwAYwAAADsAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1NTU/9XV1f/Wlpa/1xcXP9eXl7/Xl5e/15eXv9eXl7/Xl5e/15eXv9cXFz/Wlpa/1dXV/9TU1MAAAAAAAAAAP8AmQD/0NDx///////////////////////////////////////////////////////Q0PH/AJkAAAAAAAAAAAD/fn7Y/9DQ8f//////////////////////////////////////////////////////0NDx/3592AAAAAD/mZmZ//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P9fX18AAAAAAAAAAP9+ftj/////////////////////////////////////////////////////////////////f3/aAAAAAAAAAAD/AAAA/+np///p6f//6en//9ra7/+vr7//r6+//6+vv/+vr7//r6+//+np///p6f//6en//wAAAAAAAAD/mZmZ////////69///+vf///r3///69///+vf///s3///7N///+zf///s3///7N///+zf//////9fX18AAAAAAAAAAAAAAAAAAAAA/5mZmf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2ZmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAD//f39//7+/v++AwP/xEdH/+nGxv/+/v7//v7+//7+/v/+/v7//////////zEAAAAAAAAA/2Yz///p6f//6en//+np///Qx///yLv//8i7///Iu///yLv//+He///p6f//6en//+np//9mM/8AAAAAAAAAAP+jo6P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/o6OjAAAAAP9tbsD/ysrd/8rL3f/Kyt3/ysrd/8rL3f/Kyt7/ysrd/8vK3f/Ky93/ysrd/8rL3f/Ky93/nZ3C/52dwv9tbsH/pREf/6cSIP+oEiD/qRIg/6oSIP+rEiD/qxIg/6sSIP+qEiD/qhIg/6kSIP+nEiD/pRIf/6QRH/+hER8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KEg9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAABVAAAAlScPAPuWRADvjkYAvEsiAJcFAgCXBwIAvEkhAO6NRwD5lEUAkiEMAFUAAAAmAAAAAAAAAAAAAAABAAAAFgAAAD8AAABjAAAAt3ZKAPulUgD/mkAA/5pAAP+aQAD7pVIAt3ZKAGMAAAA/AAAAFgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1NTU/9VVVX/V1dX/1hYWP9ZWVn/WVlZ/1lZWf9ZWVn/WFhY/1dXV/9VVVX/U1NTAAAAAAAAAAAAAAAAAAAAAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAAAAAAAAAAAAAAAAAAAAAAD/goLe/4GC3v+Cgd7/goLe/4GC3v+Cgt7/goLe/4KC3v+Cgd7/goHf/4KC3v+Cgt4AAAAAAAAAAP9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fXwAAAAAAAAAAAAAAAP+Cgt7/gYLe/4KB3v+Cgt7/gYLe/4KC3v+Cgt7/goLe/4KB3v+Cgd//goLe/4KC3gAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAP/9/f3//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////JQAAAAAAAAAAAAAA/2Yz//9mM///ZjP//2Yz//9mM///ZjP//2Yz//9mM///ZjP//2Yz//9mM///ZjP/AAAAAAAAAAAAAAAAAAAAAP+oqKj/p6en/6enp/+oqKj/p6en/6ioqP+oqKj/qKio/6enp/+oqKj/qKio/6ioqAAAAAAAAAAA/4KDr/91ds3/jo65/46OuP+Ojrn/jo64/46Ouf+Ojrn/jo65/46OuP+Ojrn/jo64/46Ouf+Ojrn/dXbN/4KDr/+ZEB3/mhAd/5wQHv+dER7/nhEe/54RHv+eER7/nhEe/54RHv+dER7/nBAe/5oQHf+ZEB3/lxAd/5UQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zFWSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAE8AAAB6CgIApjoXAI8SBwB6AAAAcgAAAHIAAAB6AAAAjhAFAKxDGwB9EAYATwAAACQAAAAAAAAAAAAAAAAAAAABAAAAFgAAADsAAABXAAAAZwAAAG4AAABuAAAAbgAAAGcAAABXAAAAOwAAABYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAACUAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/39/rv98fdf/fH3X/3x91/98fdf/fH3X/3x91/98fdf/fH3X/3x91/98fdf/fH3X/3x91/9/f64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAANwAAAFUAAABhAAAAWwAAAEkAAAA9AAAAPQAAAEkAAABbAAAAYQAAAFUAAAA3AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEgAAACgAAAAyAAAANwAAADcAAAA3AAAAMgAAACgAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
public function InspectorSymbolBmd(){
var bmd:BitmapData = BmdStrConverter.str2bmd(this.bmdBase64Str);
super(bmd.width, bmd.height, bmd.transparent, 0);
var ba:ByteArray = bmd.getPixels(bmd.rect);
ba.position = 0;
this.setPixels(this.rect, ba);
}
}
}//package cn.itamt.utils.inspector.ui
Section 44
//InspectorTabLabelButton (cn.itamt.utils.inspector.ui.InspectorTabLabelButton)
package cn.itamt.utils.inspector.ui {
public class InspectorTabLabelButton extends InspectorLabelButton {
public function InspectorTabLabelButton(label:String="按钮", active:Boolean=false){
super(label, active);
}
override public function set active(value:Boolean):void{
if (value){
this.enabled = false;
this.mouseEnabled = false;
} else {
this.enabled = true;
this.mouseEnabled = true;
};
super.active = value;
}
}
}//package cn.itamt.utils.inspector.ui
Section 45
//InspectorTextField (cn.itamt.utils.inspector.ui.InspectorTextField)
package cn.itamt.utils.inspector.ui {
import flash.text.*;
public class InspectorTextField extends TextField {
private var tfm:TextFormat;
public static var fonts:Array = ["Verdana", "Lucida Console", "Monaco", "Comic Sans MS"];
private static var fontName:String;
public function InspectorTextField(text:String="tInspector", color:uint=0xFFFFFF, size:uint=14, x:Number=0, y:Number=0, autoSize:String="none", align:String="left"){
super();
tfm = new TextFormat();
tfm.size = size;
tfm.align = align;
if (fontName == null){
fontName = getNameOfFirstAvaliableFont(fonts);
if (fontName == null){
fontName = "none";
};
};
if (fontName != "none"){
tfm.font = fontName;
};
this.setTextFormat(tfm);
this.defaultTextFormat = tfm;
this.text = text;
this.textColor = color;
this.autoSize = autoSize;
this.x = x;
this.y = y;
}
public static function getNameOfFirstAvaliableFont(arr:Array):String{
var a:int;
var allFonts:Array = Font.enumerateFonts(true);
var i:int;
while (i < arr.length) {
a = 0;
while (a < allFonts.length) {
if ((allFonts[a] as Font).fontName == arr[i]){
return (arr[i]);
};
a++;
};
i++;
};
return (null);
}
public static function create(text:String="tInspector", color:uint=0xFFFFFF, size:uint=14, x:Number=0, y:Number=0, autoSize:String="none", align:String="left"):InspectorTextField{
return (new InspectorTextField(text, color, size, x, y, autoSize, align));
}
}
}//package cn.itamt.utils.inspector.ui
Section 46
//InspectorViewBrotherButton (cn.itamt.utils.inspector.ui.InspectorViewBrotherButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewBrotherButton extends InspectorViewOperationButton {
public function InspectorViewBrotherButton():void{
super();
_tip = InspectorLanguageManager.getStr("InspectBrother");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(4.8, 6.9);
graphics.lineTo(4.8, 16.2);
graphics.moveTo(10.4, 9.8);
graphics.lineTo(12.1, 11.5);
graphics.lineTo(10.4, 13.2);
graphics.moveTo(18.4, 6.9);
graphics.lineTo(18.4, 16.2);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(4.8, 6.9);
graphics.lineTo(4.8, 16.2);
graphics.moveTo(10.4, 9.8);
graphics.lineTo(12.1, 11.5);
graphics.lineTo(10.4, 13.2);
graphics.moveTo(18.4, 6.9);
graphics.lineTo(18.4, 16.2);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(4.8, 6.9);
graphics.lineTo(4.8, 16.2);
graphics.moveTo(10.4, 9.8);
graphics.lineTo(12.1, 11.5);
graphics.lineTo(10.4, 13.2);
graphics.moveTo(18.4, 6.9);
graphics.lineTo(18.4, 16.2);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(4.8, 6.9);
graphics.lineTo(4.8, 16.2);
graphics.moveTo(10.4, 9.8);
graphics.lineTo(12.1, 11.5);
graphics.lineTo(10.4, 13.2);
graphics.moveTo(18.4, 6.9);
graphics.lineTo(18.4, 16.2);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 47
//InspectorViewBugButton (cn.itamt.utils.inspector.ui.InspectorViewBugButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.geom.*;
import cn.itamt.utils.inspector.lang.*;
import cn.itamt.utils.inspector.consts.*;
public class InspectorViewBugButton extends InspectorViewOperationButton {
public function InspectorViewBugButton(){
super();
_tip = InspectorLanguageManager.getStr("SubmmitBug");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0xFFFFFF, 0.8);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
var bmd:BitmapData = InspectorSymbolIcon.getIcon(InspectorSymbolIcon.BUG);
g.beginBitmapFill(bmd, new Matrix(1, 0, 0, 1, ((23 - bmd.width) / 2), ((23 - bmd.height) / 2)), false);
g.drawRect(((23 - bmd.width) / 2), ((23 - bmd.height) / 2), bmd.width, bmd.height);
g.endFill();
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0xCCCCCC, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0xCCCCCC, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
var bmd:BitmapData = InspectorSymbolIcon.getIcon(InspectorSymbolIcon.BUG);
g.beginBitmapFill(bmd, new Matrix(1, 0, 0, 1, ((23 - bmd.width) / 2), ((23 - bmd.height) / 2)), false);
g.drawRect(((23 - bmd.width) / 2), ((23 - bmd.height) / 2), bmd.width, bmd.height);
g.endFill();
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 48
//InspectorViewChildButton (cn.itamt.utils.inspector.ui.InspectorViewChildButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewChildButton extends InspectorViewOperationButton {
public function InspectorViewChildButton():void{
super();
_tip = InspectorLanguageManager.getStr("InspectChild");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
graphics.moveTo(9.8, 10.7);
graphics.lineTo(11.5, 12.4);
graphics.lineTo(13.2, 10.7);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
graphics.moveTo(9.8, 10.7);
graphics.lineTo(11.5, 12.4);
graphics.lineTo(13.2, 10.7);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
graphics.moveTo(9.8, 10.7);
graphics.lineTo(11.5, 12.4);
graphics.lineTo(13.2, 10.7);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
graphics.moveTo(9.8, 10.7);
graphics.lineTo(11.5, 12.4);
graphics.lineTo(13.2, 10.7);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 49
//InspectorViewCloseButton (cn.itamt.utils.inspector.ui.InspectorViewCloseButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewCloseButton extends InspectorViewOperationButton {
public function InspectorViewCloseButton():void{
super();
_tip = InspectorLanguageManager.getStr("Close");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.moveTo(8.7, 8.7);
graphics.lineTo(14.2, 14.2);
graphics.moveTo(8.7, 14.2);
graphics.lineTo(14.2, 8.7);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(8.7, 8.7);
graphics.lineTo(14.2, 14.2);
graphics.moveTo(8.7, 14.2);
graphics.lineTo(14.2, 8.7);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(8.7, 8.7);
graphics.lineTo(14.2, 14.2);
graphics.moveTo(8.7, 14.2);
graphics.lineTo(14.2, 8.7);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.moveTo(8.7, 8.7);
graphics.lineTo(14.2, 14.2);
graphics.moveTo(8.7, 14.2);
graphics.lineTo(14.2, 8.7);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 50
//InspectorViewFavoriteButton (cn.itamt.utils.inspector.ui.InspectorViewFavoriteButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.lang.*;
import cn.itamt.utils.inspector.consts.*;
public class InspectorViewFavoriteButton extends InspectorViewOperationButton {
private var _normalMode:Boolean;// = true
public function InspectorViewFavoriteButton(normal:Boolean=true){
super();
_normalMode = normal;
_tip = InspectorLanguageManager.getStr("MarkProperty");
this.addEventListener(MouseEvent.CLICK, onToggleMode, false, 0, true);
this.update();
}
private function update():void{
var bmp:Bitmap;
if (_normalMode){
bmp = new Bitmap(InspectorSymbolIcon.getIcon(InspectorSymbolIcon.FAVORITE));
_tip = InspectorLanguageManager.getStr("MarkProperty");
} else {
bmp = new Bitmap(InspectorSymbolIcon.getIcon(InspectorSymbolIcon.DELETE));
_tip = InspectorLanguageManager.getStr("DelMark");
};
this.upState = (this.downState = (this.overState = (this.hitTestState = bmp)));
}
public function set normalMode(val:Boolean):void{
_normalMode = val;
this.update();
}
private function onToggleMode(evt:MouseEvent):void{
_normalMode = !(_normalMode);
update();
}
public function get normalMode():Boolean{
return (_normalMode);
}
}
}//package cn.itamt.utils.inspector.ui
Section 51
//InspectorViewFullButton (cn.itamt.utils.inspector.ui.InspectorViewFullButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewFullButton extends InspectorViewOperationButton {
protected var _normalMode:Boolean;// = true
public function InspectorViewFullButton(){
super();
this.addEventListener(MouseEvent.CLICK, onToggleMode, false, 0, true);
this.updateStates();
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6, 5);
graphics.lineTo(15, 5);
graphics.moveTo(6, 10);
graphics.lineTo(15, 10);
graphics.moveTo(6, 15);
graphics.lineTo(15, 15);
};
return (sp);
}
override public function set enabled(val:Boolean):void{
super.enabled = val;
if (!val){
this.downState = (this.upState = (this.overState = (this.hitTestState = buildUnenabledState())));
} else {
this.updateStates();
};
}
protected function buildOverState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(6, 6);
graphics.lineTo(15, 6);
graphics.moveTo(6, 13);
graphics.lineTo(15, 13);
};
return (sp);
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6, 5);
graphics.lineTo(15, 5);
graphics.moveTo(6, 10);
graphics.lineTo(15, 10);
graphics.moveTo(6, 15);
graphics.lineTo(15, 15);
};
return (sp);
}
protected function buildUpState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6, 6);
graphics.lineTo(15, 6);
graphics.moveTo(6, 13);
graphics.lineTo(15, 13);
};
return (sp);
}
protected function updateStates():void{
if (_normalMode){
this.downState = buildDownState();
this.upState = buildUpState();
this.overState = buildOverState();
this.hitTestState = buildHitState();
_tip = InspectorLanguageManager.getStr("ViewFullProperties");
} else {
this.downState = buildDownState2();
this.upState = buildUpState2();
this.overState = buildOverState2();
this.hitTestState = buildHitState();
_tip = InspectorLanguageManager.getStr("ViewMarkedProperties");
};
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(6, 5);
graphics.lineTo(15, 5);
graphics.moveTo(6, 10);
graphics.lineTo(15, 10);
graphics.moveTo(6, 15);
graphics.lineTo(15, 15);
};
return (sp);
}
protected function buildDownState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(6, 6);
graphics.lineTo(15, 6);
graphics.moveTo(6, 13);
graphics.lineTo(15, 13);
};
return (sp);
}
private function onToggleMode(evt:MouseEvent):void{
_normalMode = !(_normalMode);
updateStates();
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
if (_normalMode){
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(6, 5);
graphics.lineTo(15, 5);
graphics.moveTo(6, 10);
graphics.lineTo(15, 10);
graphics.moveTo(6, 15);
graphics.lineTo(15, 15);
};
} else {
_local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(6, 6);
graphics.lineTo(15, 6);
graphics.moveTo(6, 13);
graphics.lineTo(15, 13);
};
};
return (sp);
}
public function get normalMode():Boolean{
return (_normalMode);
}
}
}//package cn.itamt.utils.inspector.ui
Section 52
//InspectorViewInfoButton (cn.itamt.utils.inspector.ui.InspectorViewInfoButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewInfoButton extends InspectorViewOperationButton {
public function InspectorViewInfoButton():void{
super();
_tip = InspectorLanguageManager.getStr("InspectInfo");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.2, 9.2);
graphics.curveTo(11.5, 2, 17.8, 9.2);
graphics.moveTo(5.2, 13.8);
graphics.curveTo(11.5, 21, 17.8, 13.8);
graphics.moveTo(10.9, 11.5);
graphics.lineTo(12, 11.5);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.2, 9.2);
graphics.curveTo(11.5, 2, 17.8, 9.2);
graphics.moveTo(5.2, 13.8);
graphics.curveTo(11.5, 21, 17.8, 13.8);
graphics.moveTo(10.9, 11.5);
graphics.lineTo(12, 11.5);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(5.2, 9.2);
graphics.curveTo(11.5, 2, 17.8, 9.2);
graphics.moveTo(5.2, 13.8);
graphics.curveTo(11.5, 21, 17.8, 13.8);
graphics.moveTo(10.9, 11.5);
graphics.lineTo(12, 11.5);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(5.2, 9.2);
graphics.curveTo(11.5, 2, 17.8, 9.2);
graphics.moveTo(5.2, 13.8);
graphics.curveTo(11.5, 21, 17.8, 13.8);
graphics.moveTo(10.9, 11.5);
graphics.lineTo(12, 11.5);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 53
//InspectorViewMoveButton (cn.itamt.utils.inspector.ui.InspectorViewMoveButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewMoveButton extends InspectorViewOperationButton {
public function InspectorViewMoveButton():void{
super();
_tip = InspectorLanguageManager.getStr("LiveMove");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(13.2, 5.9);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(9.8, 5.9);
graphics.moveTo(17.1, 9.8);
graphics.lineTo(18.8, 11.5);
graphics.lineTo(17.1, 13.2);
graphics.moveTo(9.8, 17.1);
graphics.lineTo(11.5, 18.8);
graphics.lineTo(13.2, 17.1);
graphics.moveTo(5.9, 13.2);
graphics.lineTo(4.2, 11.5);
graphics.lineTo(5.9, 9.8);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(13.2, 5.9);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(9.8, 5.9);
graphics.moveTo(17.1, 9.8);
graphics.lineTo(18.8, 11.5);
graphics.lineTo(17.1, 13.2);
graphics.moveTo(9.8, 17.1);
graphics.lineTo(11.5, 18.8);
graphics.lineTo(13.2, 17.1);
graphics.moveTo(5.9, 13.2);
graphics.lineTo(4.2, 11.5);
graphics.lineTo(5.9, 9.8);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(13.2, 5.9);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(9.8, 5.9);
graphics.moveTo(17.1, 9.8);
graphics.lineTo(18.8, 11.5);
graphics.lineTo(17.1, 13.2);
graphics.moveTo(9.8, 17.1);
graphics.lineTo(11.5, 18.8);
graphics.lineTo(13.2, 17.1);
graphics.moveTo(5.9, 13.2);
graphics.lineTo(4.2, 11.5);
graphics.lineTo(5.9, 9.8);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(13.2, 5.9);
graphics.moveTo(11.5, 4.2);
graphics.lineTo(9.8, 5.9);
graphics.moveTo(17.1, 9.8);
graphics.lineTo(18.8, 11.5);
graphics.lineTo(17.1, 13.2);
graphics.moveTo(9.8, 17.1);
graphics.lineTo(11.5, 18.8);
graphics.lineTo(13.2, 17.1);
graphics.moveTo(5.9, 13.2);
graphics.lineTo(4.2, 11.5);
graphics.lineTo(5.9, 9.8);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 54
//InspectorViewOperationButton (cn.itamt.utils.inspector.ui.InspectorViewOperationButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class InspectorViewOperationButton extends SimpleButton {
private var _timer:Timer;
protected var _tip:String;// = "提示"
public static const EVT_REMOVE_TIP:String = "remove_tip";
public static const EVT_SHOW_TIP:String = "show_tip";
public function InspectorViewOperationButton():void{
super();
this.downState = buildDownState();
this.upState = buildUpState();
this.overState = buildOverState();
this.hitTestState = buildHitState();
_timer = new Timer(1000);
addEventListener(MouseEvent.ROLL_OVER, onRollOver);
this.tabEnabled = false;
}
protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
override public function set enabled(val:Boolean):void{
if (!val){
this.downState = (this.upState = (this.overState = (this.hitTestState = buildUnenabledState())));
} else {
this.downState = buildDownState();
this.upState = buildUpState();
this.overState = buildOverState();
this.hitTestState = buildHitState();
};
super.enabled = val;
}
protected function buildHitState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
private function onRollOver(evt:MouseEvent):void{
_timer.addEventListener(TimerEvent.TIMER, onTimerShowTip);
addEventListener(MouseEvent.ROLL_OUT, onRollOut);
dispatchEvent(new Event(EVT_SHOW_TIP, true));
}
private function onTimerRemoveTip(evt:TimerEvent=null):void{
_timer.removeEventListener(TimerEvent.TIMER, onTimerRemoveTip);
_timer.removeEventListener(TimerEvent.TIMER, onTimerShowTip);
_timer.reset();
_timer.stop();
dispatchEvent(new Event(EVT_REMOVE_TIP, true));
}
private function onRollOut(evt:MouseEvent):void{
removeEventListener(MouseEvent.ROLL_OUT, onRollOut);
onTimerRemoveTip();
}
public function set tip(value:String):void{
_tip = value;
}
protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
};
return (sp);
}
public function get tip():String{
return (_tip);
}
private function onTimerShowTip(evt:TimerEvent):void{
_timer.removeEventListener(TimerEvent.TIMER, onTimerShowTip);
_timer.addEventListener(TimerEvent.TIMER, onTimerRemoveTip);
dispatchEvent(new Event(EVT_SHOW_TIP, true));
}
}
}//package cn.itamt.utils.inspector.ui
Section 55
//InspectorViewPanel (cn.itamt.utils.inspector.ui.InspectorViewPanel)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import flash.geom.*;
import flash.text.*;
import flash.filters.*;
public class InspectorViewPanel extends Sprite {
protected var resizeBtn:InspectorViewResizeButton;
protected var _minH:Number;// = 160
protected var _scroller:InspectorScroller;
private var _lh:Number;// = NAN
private var inited:Boolean;
private var _lw:Number;// = NAN
protected var _content:DisplayObject;
protected var _minW:Number;// = 180
protected var closeBtn:InspectorViewCloseButton;
protected var bg:Sprite;
protected var _height:Number;
protected var _width:Number;
protected var _virtualResizer:Sprite;
protected var _title:TextField;
protected var _padding:Padding;
protected var _contentContainer:Sprite;
private var autoDispose:Boolean;
protected var _resizer:ResizerButton;
public function InspectorViewPanel(title:String="面板", w:Number=200, h:Number=200, autoDisposeWhenRemove:Boolean=true){
_padding = new Padding(33, 10, 10, 10);
super();
autoDispose = autoDisposeWhenRemove;
bg = new Sprite();
addChild(bg);
bg.filters = [new GlowFilter(0, 1, 16, 16, 1)];
_virtualResizer = new Sprite();
_resizer = new ResizerButton(15, 15);
addChild(_resizer);
_title = InspectorTextField.create(title, 0x99CC00, 12);
_title.selectable = false;
_title.height = 20;
addChild(_title);
_contentContainer = new Sprite();
addChild(_contentContainer);
closeBtn = new InspectorViewCloseButton();
closeBtn.addEventListener(MouseEvent.CLICK, onClickClose);
addChild(closeBtn);
resizeBtn = new InspectorViewResizeButton();
resizeBtn.addEventListener(MouseEvent.CLICK, onClickResize);
addChild(resizeBtn);
_width = ((w > _minW)) ? w : _minW;
_height = ((h > _minH)) ? h : _minH;
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
this.addEventListener(Event.REMOVED_FROM_STAGE, onRemoved);
}
private function onRemoved(evt:Event):void{
if (evt.target == this){
inited = false;
bg.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
this.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseup);
this._resizer.removeEventListener(MouseEvent.MOUSE_DOWN, onDownResizer);
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMoveResizer);
this.removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
if (autoDispose){
this.dispose();
};
};
}
private function drawBG():void{
this.bg.graphics.clear();
this.bg.graphics.lineStyle(2, 0x666666);
this.bg.graphics.beginFill(InspectorColorStyle.DEFAULT_BG);
this.bg.graphics.drawRoundRect(0, 0, this._width, this._height, 15, 15);
this.bg.graphics.endFill();
}
private function onScroll(evt:Event=null):void{
var rect:Rectangle = _contentContainer.scrollRect;
rect.y = calculateScrollRectY();
_contentContainer.scrollRect = rect;
}
protected function onClickClose(evt:Event):void{
evt.stopImmediatePropagation();
dispatchEvent(new Event(Event.CLOSE));
}
private function drawContent():void{
var rect:Rectangle = _contentContainer.scrollRect;
if (needHScroller()){
if (_scroller == null){
_scroller = new InspectorScroller(15, this.calculateContenAreaHeight());
_scroller.y = _padding.top;
_scroller.addEventListener(Event.CHANGE, onScroll);
this.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
} else {
_scroller.resize(15, this.calculateContenAreaHeight());
};
_scroller.x = ((_width - _padding.right) - _scroller.width);
addChild(_scroller);
_contentContainer.scrollRect = new Rectangle(rect.x, calculateScrollRectY(), (calculateContenAreaWidth() - _scroller.width), this.calculateContenAreaHeight());
} else {
_contentContainer.scrollRect = new Rectangle(rect.x, 0, calculateContenAreaWidth(), this.calculateContenAreaHeight());
if (_scroller){
if (_scroller.stage){
removeChild(_scroller);
};
this.removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
_scroller.removeEventListener(Event.CHANGE, onScroll);
_scroller = null;
};
};
}
public function relayout():void{
drawBG();
if (_content){
drawContent();
};
_virtualResizer.x = (_resizer.x = _width);
_virtualResizer.y = (_resizer.y = _height);
closeBtn.x = ((this._width - 5) - closeBtn.width);
closeBtn.y = 5;
resizeBtn.x = (closeBtn.x - resizeBtn.width);
resizeBtn.y = 5;
this.drawTitle();
}
public function dispose():void{
while (this.numChildren) {
this.removeChildAt(0);
};
}
protected function onMouseup(evt:MouseEvent):void{
this.cacheAsBitmap = false;
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMoveResizer);
this.stopDrag();
this._virtualResizer.stopDrag();
}
public function resize(w:Number, h:Number):void{
_width = ((w > _minW)) ? w : _minW;
_height = ((h > _minH)) ? h : _minH;
this.relayout();
}
public function setContent(content:DisplayObject):void{
if (content == _content){
if (inited){
this.relayout();
};
} else {
if (_content){
_content.removeEventListener(Event.RESIZE, onContentResize);
_contentContainer.removeChild(_content);
};
_content = content;
_content.addEventListener(Event.RESIZE, onContentResize, false, 0, true);
_contentContainer.x = this._padding.left;
_contentContainer.y = this._padding.top;
_contentContainer.scrollRect = new Rectangle(0, 0, calculateContenAreaWidth(), this.calculateContenAreaHeight());
_contentContainer.addChild(_content);
if (inited){
this.relayout();
};
};
}
public function hide():void{
_lw = _width;
_lh = _height;
if (_contentContainer.stage){
_contentContainer.parent.removeChild(_contentContainer);
};
if (_resizer.stage){
_resizer.parent.removeChild(_resizer);
};
this._height = 33;
this.relayout();
if (_scroller){
_scroller.visible = false;
};
}
public function open():void{
if (isNaN(_lw)){
_lw = 200;
};
if (isNaN(_lh)){
_lh = 200;
};
addChild(_contentContainer);
addChild(_resizer);
this._width = _lw;
this._height = _lh;
this.relayout();
if (_scroller){
_scroller.visible = true;
};
}
private function needHScroller():Boolean{
return (((_content.height - calculateContenAreaHeight()) > 0));
}
protected function onMouseDown(evt:MouseEvent):void{
this.cacheAsBitmap = true;
this.startDrag(false);
DisplayObjectTool.swapToTop(this);
}
protected function onMoveResizer(evt:MouseEvent):void{
this.resize(this._virtualResizer.x, this._virtualResizer.y);
}
private function calculateContenAreaWidth():Number{
return (((this._width - _padding.left) - _padding.right));
}
private function needVScroller():Boolean{
return (false);
}
private function calculateContenAreaHeight():Number{
return (((this._height - _padding.top) - _padding.bottom));
}
private function onDownResizer(evt:MouseEvent):void{
this._virtualResizer.x = mouseX;
this._virtualResizer.y = mouseY;
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMoveResizer);
this._virtualResizer.startDrag(false);
}
private function calculateScrollRectY():Number{
if (_scroller){
return (((_scroller.value / 100) * (_content.height - calculateContenAreaHeight())));
};
return (0);
}
private function onAdded(evt:Event):void{
if (evt.target == this){
if (inited){
return;
};
inited = true;
bg.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
this.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseup);
this._resizer.addEventListener(MouseEvent.MOUSE_DOWN, onDownResizer);
this.relayout();
};
}
public function showContentArea(rect:Rectangle):void{
if (_contentContainer.scrollRect.containsRect(rect)){
return;
};
var v:Number = ((100 * rect.bottom) / _content.height);
if (v < 0){
v = 0;
};
if (v > 100){
v = 100;
};
if (this._scroller){
this._scroller.value = v;
};
this.onScroll();
}
private function onContentResize(evt:Event):void{
this.relayout();
}
protected function drawTitle():void{
_title.x = _padding.left;
_title.y = 7;
_title.width = (_title.textWidth + 4);
if (_title.width > (resizeBtn.x - _padding.left)){
_title.width = (resizeBtn.x - _padding.left);
};
}
private function onMouseWheel(evt:MouseEvent):void{
var rect:Rectangle;
var t:Number;
if (_content){
rect = _contentContainer.scrollRect;
rect.y = (rect.y + ((evt.delta < 0)) ? 20 : -20);
if (rect.y < 0){
rect.y = 0;
};
t = (_content.height - calculateContenAreaHeight());
if (rect.y > t){
rect.y = t;
};
_contentContainer.scrollRect = rect;
if (_scroller){
_scroller.value = ((100 * rect.y) / t);
};
};
}
private function onClickResize(evt:Event):void{
evt.stopImmediatePropagation();
if (resizeBtn.normalMode){
open();
dispatchEvent(new Event(Event.CANCEL));
} else {
hide();
dispatchEvent(new Event(Event.OPEN));
};
}
}
}//package cn.itamt.utils.inspector.ui
Section 56
//InspectorViewParentButton (cn.itamt.utils.inspector.ui.InspectorViewParentButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewParentButton extends InspectorViewOperationButton {
public function InspectorViewParentButton():void{
super();
_tip = InspectorLanguageManager.getStr("InspectParent");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
graphics.moveTo(13.2, 12.4);
graphics.lineTo(11.5, 10.7);
graphics.lineTo(9.8, 12.4);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
graphics.moveTo(13.2, 12.4);
graphics.lineTo(11.5, 10.7);
graphics.lineTo(9.8, 12.4);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
graphics.moveTo(13.2, 12.4);
graphics.lineTo(11.5, 10.7);
graphics.lineTo(9.8, 12.4);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(5.2, 4.9);
graphics.lineTo(17.8, 4.9);
graphics.moveTo(13.2, 12.4);
graphics.lineTo(11.5, 10.7);
graphics.lineTo(9.8, 12.4);
graphics.moveTo(6.9, 18.6);
graphics.lineTo(16.1, 18.6);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 57
//InspectorViewRefreshButton (cn.itamt.utils.inspector.ui.InspectorViewRefreshButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewRefreshButton extends InspectorViewOperationButton {
public function InspectorViewRefreshButton(){
super();
_tip = InspectorLanguageManager.getStr("Refresh");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 0);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF);
g.moveTo(4.5, 10);
g.curveTo(4.5, 4.5, 10, 4.5);
g.curveTo(15.5, 4.5, 15.5, 10);
g.curveTo(15.5, 15.5, 10, 15.5);
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF);
g.moveTo(4.5, 10);
g.curveTo(4.5, 4.5, 10, 4.5);
g.curveTo(15.5, 4.5, 15.5, 10);
g.curveTo(15.5, 15.5, 10, 15.5);
return (sp);
}
override protected function buildHitState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 0);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0);
g.moveTo(4.5, 10);
g.curveTo(4.5, 4.5, 10, 4.5);
g.curveTo(15.5, 4.5, 15.5, 10);
g.curveTo(15.5, 15.5, 10, 15.5);
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0x99CC00);
g.moveTo(4.5, 10);
g.curveTo(4.5, 4.5, 10, 4.5);
g.curveTo(15.5, 4.5, 15.5, 10);
g.curveTo(15.5, 15.5, 10, 15.5);
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 58
//InspectorViewResizeButton (cn.itamt.utils.inspector.ui.InspectorViewResizeButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewResizeButton extends InspectorViewOperationButton {
private var _normalMode:Boolean;// = true
public function InspectorViewResizeButton(){
super();
_tip = InspectorLanguageManager.getStr("MinimizePanel");
this.addEventListener(MouseEvent.CLICK, onToggleMode, false, 0, true);
this.updateStates();
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(10, 13);
graphics.lineTo(16, 13);
};
return (sp);
}
override public function set enabled(val:Boolean):void{
if (!val){
this.downState = (this.upState = (this.overState = (this.hitTestState = buildUnenabledState())));
} else {
this.updateStates();
};
super.enabled = val;
}
protected function buildOverState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.drawRect(8, 8, 7, 7);
};
return (sp);
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.moveTo(10, 13);
graphics.lineTo(16, 13);
};
return (sp);
}
protected function buildUpState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 0);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.drawRect(8, 8, 7, 7);
};
return (sp);
}
private function updateStates():void{
if (_normalMode){
this.downState = buildDownState();
this.upState = buildUpState();
this.overState = buildOverState();
this.hitTestState = buildHitState();
_tip = InspectorLanguageManager.getStr("MinimizePanel");
} else {
this.downState = buildDownState2();
this.upState = buildUpState2();
this.overState = buildOverState2();
this.hitTestState = buildHitState();
_tip = InspectorLanguageManager.getStr("RestorePanel");
};
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFF0000);
graphics.moveTo(10, 13);
graphics.lineTo(16, 13);
};
return (sp);
}
protected function buildDownState2():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.beginFill(0, 1);
graphics.drawRoundRect(0, 0, 23, 23, 10, 10);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.drawRect(8, 8, 7, 7);
};
return (sp);
}
private function onToggleMode(evt:MouseEvent):void{
_normalMode = !(_normalMode);
updateStates();
}
public function get normalMode():Boolean{
return (_normalMode);
}
}
}//package cn.itamt.utils.inspector.ui
Section 59
//InspectorViewSingletonButton (cn.itamt.utils.inspector.ui.InspectorViewSingletonButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewSingletonButton extends InspectorViewFullButton {
public function InspectorViewSingletonButton(){
super();
}
override protected function buildDownState2():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF);
g.drawRect(5, 5, 6, 6);
g.drawRect(9, 9, 6, 6);
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF, 1, false, "normal", CapsStyle.SQUARE, JointStyle.MITER);
g.drawRect(6, 6, 9, 9);
return (sp);
}
override protected function buildOverState2():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0x99CC00);
g.drawRect(5, 5, 6, 6);
g.drawRect(9, 9, 6, 6);
return (sp);
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 0);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF, 1, false, "normal", CapsStyle.SQUARE, JointStyle.MITER);
g.drawRect(6, 6, 9, 9);
return (sp);
}
override protected function buildUpState2():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 0);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0xFFFFFF);
g.drawRect(5, 5, 6, 6);
g.drawRect(9, 9, 6, 6);
return (sp);
}
override protected function updateStates():void{
super.updateStates();
if (_normalMode){
_tip = InspectorLanguageManager.getStr("SingletonMode");
} else {
_tip = InspectorLanguageManager.getStr("MultipleMode");
};
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.beginFill(0, 1);
g.drawRoundRect(0, 0, 23, 23, 10, 10);
g.endFill();
g.lineStyle(3, 0x99CC00, 1, false, "normal", CapsStyle.SQUARE, JointStyle.MITER);
g.drawRect(6, 6, 9, 9);
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 60
//InspectorViewStructureButton (cn.itamt.utils.inspector.ui.InspectorViewStructureButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class InspectorViewStructureButton extends InspectorViewOperationButton {
public function InspectorViewStructureButton(){
super();
_tip = InspectorLanguageManager.getStr("ViewStructure");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 0);
graphics.moveTo(23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.4, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 6.4);
graphics.lineTo(17.6, 6.4);
graphics.moveTo(17.6, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 16.65);
graphics.lineTo(17.05, 16.65);
};
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 1);
graphics.moveTo(23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.endFill();
graphics.lineStyle(3, 0xFFFFFF);
graphics.moveTo(5.4, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 6.4);
graphics.lineTo(17.6, 6.4);
graphics.moveTo(17.6, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 16.65);
graphics.lineTo(17.05, 16.65);
};
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 0);
graphics.moveTo(23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.endFill();
graphics.lineStyle(3, 0);
graphics.moveTo(5.4, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 6.4);
graphics.lineTo(17.6, 6.4);
graphics.moveTo(17.6, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 16.65);
graphics.lineTo(17.05, 16.65);
};
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var _local2 = sp;
with (_local2) {
graphics.lineStyle();
graphics.beginFill(0, 1);
graphics.moveTo(23, 5.75);
graphics.lineTo(23, 17.25);
graphics.curveTo(23, 19.6, 21.35, 21.35);
graphics.curveTo(19.6, 23, 17.25, 23);
graphics.lineTo(5.75, 23);
graphics.curveTo(3.4, 23, 1.75, 21.35);
graphics.curveTo(0, 19.6, 0, 17.25);
graphics.lineTo(0, 5.75);
graphics.curveTo(0, 3.4, 1.75, 1.75);
graphics.curveTo(3.4, 0, 5.75, 0);
graphics.lineTo(17.25, 0);
graphics.curveTo(19.6, 0, 21.35, 1.75);
graphics.curveTo(23, 3.4, 23, 5.75);
graphics.endFill();
graphics.lineStyle(3, 0x99CC00);
graphics.moveTo(5.4, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 6.4);
graphics.lineTo(17.6, 6.4);
graphics.moveTo(17.6, 11.6);
graphics.lineTo(10.25, 11.6);
graphics.lineTo(10.25, 16.65);
graphics.lineTo(17.05, 16.65);
};
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 61
//LiveInspectView (cn.itamt.utils.inspector.ui.LiveInspectView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.data.*;
import flash.geom.*;
import cn.itamt.utils.inspector.output.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
public class LiveInspectView extends BaseInspectorView {
private var upReg:Point;
private var _mBtn:Sprite;
private var tBtnBL:LiveTransformPointBtn;
private var reg:Point;
private var tBtnBR:LiveTransformPointBtn;
private var inited:Boolean;
private var dist:Point;
private var tBtnTL:LiveTransformPointBtn;
private var tBtnTR:LiveTransformPointBtn;
private var _bar:OperationBar;
private var drager:Sprite;
private var _des:TextField;
private var rect:Rectangle;
public var outputer:DisplayObjectInfoOutPuter;
public static const ID:String = "LiveInspector";
public function LiveInspectView():void{
drager = new Sprite();
super();
}
private function onRotateTransform(btn:LiveTransformPointBtn):void{
var lp:Point = this.target.displayObject.globalToLocal(btn.lastMousePt);
var or:Number = Math.atan2(lp.y, lp.x);
var nr:Number = Math.atan2(this.target.displayObject.mouseY, this.target.displayObject.mouseX);
var dif:Number = ((((nr - or) * 180) / Math.PI) % 360);
if (dif != (dif % 180)){
dif = ((dif)<0) ? (dif + 360) : (dif - 360);
};
this.target.displayObject.rotation = (this.target.displayObject.rotation + dif);
this.update();
}
private function onPressInfo(evt:Event):void{
_inspector.registerViewById("PropertyPanel");
}
private function onScaleTransform(btn:LiveTransformPointBtn):void{
var pt:Point = new Point(this.target.displayObject.parent.mouseX, this.target.displayObject.parent.mouseY);
var lp:Point = this.target.displayObject.parent.globalToLocal(btn.lastMousePt);
switch (btn){
case tBtnBR:
target.displayObject.width = (target.displayObject.width + (pt.x - lp.x));
target.displayObject.height = (target.displayObject.height + (pt.y - lp.y));
break;
};
this.update();
}
private function drawTransformPointBtns():void{
if (tBtnTR == null){
tBtnTR = new LiveRotatePointBtn(null, null, onRotateTransform);
this.viewContainer.addChild(tBtnTR);
};
if (tBtnBR == null){
tBtnBR = new LiveScalePointBtn(null, null, onScaleTransform);
this.viewContainer.addChild(tBtnBR);
};
var tmp:Rectangle = this.target.displayObject.getBounds(this.target.displayObject);
var tl:Point = this.target.displayObject.localToGlobal(tmp.topLeft);
var tr:Point = this.target.displayObject.localToGlobal(new Point(tmp.right, tmp.top));
var bl:Point = this.target.displayObject.localToGlobal(new Point(tmp.left, tmp.bottom));
var br:Point = this.target.displayObject.localToGlobal(tmp.bottomRight);
tBtnBR.x = br.x;
tBtnBR.y = br.y;
tBtnTR.x = tr.x;
tBtnTR.y = tr.y;
}
override public function onLiveInspect(ele:InspectTarget):void{
this._inspector.stage.addChild(this.viewContainer);
target = ele;
update(true);
if (_bar.stage){
this.viewContainer.removeChild(_bar);
};
_bar.validate(target.displayObject);
}
public function dispose():void{
if (this.viewContainer){
this.viewContainer.graphics.clear();
if (this.viewContainer.stage){
this.viewContainer.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
this.viewContainer.stage.removeChild(this.viewContainer);
};
};
if (_des){
if (_des.parent){
_des.parent.removeChild(_des);
};
};
target = null;
outputer.dispose();
_mBtn.removeEventListener(MouseEvent.CLICK, onClickInspect);
_bar.removeEventListener(OperationBar.DOWN_MOVE, this.onStartMove);
_bar.removeEventListener(OperationBar.UP_MOVE, this.onStopMove);
_bar.removeEventListener(OperationBar.PRESS_CLOSE, onCloseBar);
_bar.removeEventListener(OperationBar.PRESS_PARENT, onPressParent);
_bar.removeEventListener(OperationBar.PRESS_CHILD, onPressChild);
_bar.removeEventListener(OperationBar.PRESS_BROTHER, onPressBrother);
_bar.removeEventListener(OperationBar.PRESS_STRUCTURE, onPressStructure);
_bar.removeEventListener(OperationBar.PRESS_INFO, onPressInfo);
}
private function onStartMove(evt:Event):void{
this.viewContainer.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
dist = target.displayObject.localToGlobal(new Point(0, 0));
drager.x = viewContainer.mouseX;
drager.y = viewContainer.mouseY;
drager.startDrag(true);
dist.x = (drager.x - dist.x);
dist.y = (drager.y - dist.y);
}
override public function onInspect(ele:InspectTarget):void{
target = ele;
update();
if (_bar.stage == null){
this.viewContainer.addChild(_bar);
};
_bar.validate(target.displayObject);
}
private function drawMbtn(alpha:Number=0.3, bColor:uint=0xFF0000):void{
_mBtn.graphics.clear();
_mBtn.graphics.lineStyle(2, bColor, 1, false, "normal", "square", "miter");
_mBtn.graphics.beginFill(0xFF0000, alpha);
var tmp:Rectangle = this.target.displayObject.getBounds(this.target.displayObject);
var tl:Point = this.target.displayObject.localToGlobal(tmp.topLeft);
var tr:Point = this.target.displayObject.localToGlobal(new Point(tmp.right, tmp.top));
var bl:Point = this.target.displayObject.localToGlobal(new Point(tmp.left, tmp.bottom));
var br:Point = this.target.displayObject.localToGlobal(tmp.bottomRight);
_mBtn.graphics.moveTo(tl.x, tl.y);
_mBtn.graphics.lineTo(tr.x, tr.y);
_mBtn.graphics.lineTo(br.x, br.y);
_mBtn.graphics.lineTo(bl.x, bl.y);
_mBtn.graphics.lineTo(tl.x, tl.y);
_mBtn.graphics.beginFill(0xFF0000, alpha);
_mBtn.graphics.drawRect(rect.x, rect.y, rect.width, rect.height);
_mBtn.graphics.lineStyle(1, bColor, 1, false, "normal", "square", "miter");
_mBtn.graphics.drawCircle(reg.x, reg.y, 5);
_mBtn.graphics.lineStyle(2, bColor, 1, false, "normal", "square", "miter");
_mBtn.graphics.moveTo((reg.x - 3), reg.y);
_mBtn.graphics.lineTo((reg.x + 3), reg.y);
_mBtn.graphics.moveTo(reg.x, (reg.y - 3));
_mBtn.graphics.lineTo(reg.x, (reg.y + 3));
_mBtn.graphics.endFill();
if (upReg){
_mBtn.graphics.lineStyle(2, 0xFF, 1, false, "normal", "square", "miter");
_mBtn.graphics.moveTo((upReg.x - 4), upReg.y);
_mBtn.graphics.lineTo((upReg.x + 4), upReg.y);
_mBtn.graphics.moveTo(upReg.x, (upReg.y - 4));
_mBtn.graphics.lineTo(upReg.x, (upReg.y + 4));
};
}
override public function getInspectorViewClassID():String{
return ("BaseInspectorView");
}
private function onPressFilter(evt:Event):void{
_inspector.stage.dispatchEvent(new InspectorFilterEvent(InspectorFilterEvent.CHANGE, (this.target.displayObject["constructor"] as Class)));
}
override public function setInfoOutputer(outputer:DisplayObjectInfoOutPuter):void{
this.outputer = outputer;
}
private function onPressStructure(evt:Event):void{
_inspector.registerViewById("StructurePanel");
}
public function update(isLiveMode:Boolean=false):void{
if (!contains(_des)){
this.viewContainer.addChild(_des);
};
if (!contains(_mBtn)){
this.viewContainer.addChild(_mBtn);
};
rect = target.displayObject.getBounds(this.viewContainer.stage);
reg = target.displayObject.localToGlobal(new Point(0, 0));
if (target.displayObject.parent){
upReg = target.displayObject.parent.localToGlobal(new Point(0, 0));
} else {
upReg = null;
};
_des.htmlText = outputer.output(target.displayObject);
_des.x = (rect.x - 0.5);
_des.y = ((rect.y - _des.height) + 0.5);
if (isLiveMode){
this.drawMbtn();
_mBtn.mouseChildren = (_mBtn.mouseEnabled = true);
resetTransformPointBtns();
} else {
this.drawMbtn(0, 6515714);
_mBtn.mouseChildren = (_mBtn.mouseEnabled = false);
drawTransformPointBtns();
};
_bar.x = (rect.x - 0.5);
_bar.y = (_des.y - _bar.barHeight);
}
private function onPressChild(evt:Event):void{
if (target){
if ((target.displayObject is DisplayObjectContainer)){
this._inspector.inspect((target.displayObject as DisplayObjectContainer).getChildAt(0));
};
};
}
override public function onTurnOff():void{
inited = false;
dispose();
}
private function onClickReset(evt:Event):void{
if (target){
target.resetTarget();
this.update();
};
}
private function resetTransformPointBtns():void{
if (((tBtnTL) && (tBtnTL.parent))){
this.tBtnTL.parent.removeChild(tBtnTL);
};
if (((tBtnTR) && (tBtnTR.parent))){
this.tBtnTR.parent.removeChild(tBtnTR);
};
if (((tBtnBL) && (tBtnBL.parent))){
this.tBtnBL.parent.removeChild(tBtnBL);
};
if (((tBtnBR) && (tBtnBR.parent))){
this.tBtnBR.parent.removeChild(tBtnBR);
};
tBtnTL = null;
tBtnTR = null;
tBtnBL = null;
tBtnBR = null;
}
private function onClickInspect(evt:MouseEvent):void{
this._inspector.inspect(target.displayObject);
}
private function onStopMove(evt:Event=null):void{
this.viewContainer.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
drager.stopDrag();
}
private function onPressParent(evt:Event):void{
if (target){
if (target.displayObject.parent){
this._inspector.inspect(target.displayObject.parent);
};
};
}
private function onMouseMove(evt:MouseEvent=null):void{
var pt:Point = new Point((drager.x - dist.x), (drager.y - dist.y));
pt = target.displayObject.parent.globalToLocal(pt);
target.displayObject.x = pt.x;
target.displayObject.y = pt.y;
this.update();
}
private function onCloseBar(evt:Event=null):void{
if (this.viewContainer.stage){
this.viewContainer.parent.removeChild(this.viewContainer);
};
this._inspector.startLiveInspect();
}
override public function onTurnOn():void{
if (inited){
return;
};
inited = true;
this.viewContainer = new Sprite();
this.viewContainer.mouseEnabled = false;
_des = InspectorTextField.create("", 0xFFFFFF, 13);
_des.background = true;
_des.backgroundColor = 6515714;
_des.border = true;
_des.borderColor = 6515714;
_des.cacheAsBitmap = true;
_des.autoSize = "left";
this.viewContainer.addChild(_des);
_mBtn = new Sprite();
_mBtn.buttonMode = true;
this.viewContainer.addChild(_mBtn);
_bar = new OperationBar();
_bar.init();
_mBtn.addEventListener(MouseEvent.CLICK, onClickInspect);
_bar.addEventListener(OperationBar.DOWN_MOVE, onStartMove);
_bar.addEventListener(OperationBar.UP_MOVE, onStopMove);
_bar.addEventListener(OperationBar.PRESS_CLOSE, onCloseBar);
_bar.addEventListener(OperationBar.PRESS_PARENT, onPressParent);
_bar.addEventListener(OperationBar.PRESS_CHILD, onPressChild);
_bar.addEventListener(OperationBar.PRESS_BROTHER, onPressBrother);
_bar.addEventListener(OperationBar.PRESS_STRUCTURE, onPressStructure);
_bar.addEventListener(OperationBar.PRESS_INFO, onPressInfo);
_bar.addEventListener(OperationBar.PRESS_FILTER, onPressFilter);
_bar.addEventListener(OperationBar.DB_CLICK_MOVE, onClickReset);
if (outputer == null){
this.outputer = new DisplayObjectInfoOutPuter();
};
}
private function onPressBrother(evt:Event):void{
var container:DisplayObjectContainer;
var i:int;
var t:int;
if (target){
if (target.displayObject.parent){
container = target.displayObject.parent;
i = container.getChildIndex(target.displayObject);
++i;
t = (i % container.numChildren);
this._inspector.inspect(container.getChildAt(t));
};
};
}
}
}//package cn.itamt.utils.inspector.ui
Section 62
//LiveRotatePointBtn (cn.itamt.utils.inspector.ui.LiveRotatePointBtn)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import cn.itamt.utils.inspector.lang.*;
public class LiveRotatePointBtn extends LiveTransformPointBtn {
public function LiveRotatePointBtn(onMouseDown:Function=null, onMouseUp:Function=null, onDrag:Function=null){
super(onMouseDown, onMouseUp, onDrag);
_tip = InspectorLanguageManager.getStr("LiveRotate");
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawCircle(0, 0, 5);
g.endFill();
return (sp);
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0xFF0000, 1);
g.drawCircle(0, 0, 5);
g.endFill();
return (sp);
}
override protected function buildHitState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawCircle(0, 0, 5);
g.endFill();
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawCircle(0, 0, 5);
g.endFill();
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0);
g.beginFill(0x99CC00, 1);
g.drawCircle(0, 0, 5);
g.endFill();
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 63
//LiveScalePointBtn (cn.itamt.utils.inspector.ui.LiveScalePointBtn)
package cn.itamt.utils.inspector.ui {
import cn.itamt.utils.inspector.lang.*;
public class LiveScalePointBtn extends LiveTransformPointBtn {
public function LiveScalePointBtn(onMouseDown:Function=null, onMouseUp:Function=null, onDrag:Function=null){
super(onMouseDown, onMouseUp, onDrag);
_tip = InspectorLanguageManager.getStr("LiveScale");
}
}
}//package cn.itamt.utils.inspector.ui
Section 64
//LiveTransformPointBtn (cn.itamt.utils.inspector.ui.LiveTransformPointBtn)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class LiveTransformPointBtn extends InspectorViewOperationButton {
private var upHandler:Function;
private var downHandler:Function;
private var inited:Boolean;
public var lastMousePt:Point;
private var dragHandler:Function;
public function LiveTransformPointBtn(onMouseDown:Function=null, onMouseUp:Function=null, onDrag:Function=null){
super();
downHandler = onMouseDown;
upHandler = onMouseUp;
dragHandler = onDrag;
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
this.addEventListener(Event.REMOVED_FROM_STAGE, onRemoved);
}
override protected function buildUpState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawRect(-4, -4, 8, 8);
g.endFill();
return (sp);
}
private function onAdded(evt:Event):void{
if (inited){
return;
};
inited = true;
this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
this.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
private function onMouseUp(evt:MouseEvent):void{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
if (this.downHandler){
this.upHandler.call(null, this);
};
}
private function onMouseMove(evt:MouseEvent):void{
if (this.dragHandler){
this.dragHandler.call(null, this);
};
lastMousePt.x = evt.stageX;
lastMousePt.y = evt.stageY;
}
override protected function buildDownState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0xFF0000, 1);
g.drawRect(-4, -4, 8, 8);
g.endFill();
return (sp);
}
override protected function buildOverState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0);
g.beginFill(0x99CC00, 1);
g.drawRect(-4, -4, 8, 8);
g.endFill();
return (sp);
}
private function onMouseDown(evt:MouseEvent):void{
lastMousePt = new Point(evt.stageX, evt.stageY);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
if (this.downHandler){
this.downHandler.call(null, this);
};
}
private function onRemoved(evt:Event):void{
inited = false;
this.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
this.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
override protected function buildHitState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawRect(-4, -4, 8, 8);
g.endFill();
return (sp);
}
override protected function buildUnenabledState():Shape{
var sp:Shape = new Shape();
var g:Graphics = sp.graphics;
g.lineStyle(1, 0xFFFFFF);
g.beginFill(0, 1);
g.drawRect(-4, -4, 8, 8);
g.endFill();
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 65
//OperationBar (cn.itamt.utils.inspector.ui.OperationBar)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
public class OperationBar extends Sprite {
private var _filterBtn:InspectorFilterClassButton;
private var _height:int;// = 33
private var _width:int;// = 200
private var _moveBtn:InspectorViewMoveButton;
private var _infoBtn:InspectorViewInfoButton;
private var _struBtn:InspectorViewStructureButton;
private var _broBtn:InspectorViewBrotherButton;
private var _pareBtn:InspectorViewParentButton;
private var _paddings:Array;
private var _closeBtn:InspectorViewCloseButton;
private var _btnGap:int;// = 5
private var _childBtn:InspectorViewChildButton;
public static const PRESS_CHILD:String = "press_child";
public static const PRESS_BROTHER:String = "press_brother";
public static const PRESS_PARENT:String = "press_parent";
public static const DB_CLICK_MOVE:String = "double_click_move";
public static const PRESS_INFO:String = "press_info";
public static const PRESS_MOVE:String = "press_move";
public static const DOWN_MOVE:String = "down_move";
public static const PRESS_FILTER:String = "click_filter";
public static const PRESS_STRUCTURE:String = "press_structure";
public static const UP_MOVE:String = "up_move";
public static const PRESS_CLOSE:String = "press_close";
public function OperationBar():void{
_paddings = [10, 5, 10];
super();
}
private function onDlickMoveBtn(evt:MouseEvent):void{
dispatchEvent(new Event(DB_CLICK_MOVE));
}
public function init():void{
var btn:InspectorViewOperationButton;
var btns:Array = [(_moveBtn = new InspectorViewMoveButton()), (_pareBtn = new InspectorViewParentButton()), (_childBtn = new InspectorViewChildButton()), (_broBtn = new InspectorViewBrotherButton()), (_infoBtn = new InspectorViewInfoButton()), (_struBtn = new InspectorViewStructureButton()), (_filterBtn = new InspectorFilterClassButton())];
var i:int;
while (i < btns.length) {
btn = (btns[i] as InspectorViewOperationButton);
addChild(btn);
if (i == 0){
btn.x = (_paddings[0] + (i * _btnGap));
} else {
btn.x = (_paddings[0] + (i * (_btnGap + (btns[(i - 1)] as InspectorViewOperationButton).width)));
};
btn.y = _paddings[1];
i++;
};
_closeBtn = new InspectorViewCloseButton();
addChild(_closeBtn);
_closeBtn.x = ((btn.x + btn.width) + 20);
_closeBtn.y = _paddings[1];
graphics.clear();
graphics.beginFill(0x393939);
graphics.drawRoundRectComplex(0, 0, ((_closeBtn.x + _closeBtn.width) + 10), _height, 8, 8, 0, 8);
graphics.endFill();
_moveBtn.doubleClickEnabled = true;
_moveBtn.addEventListener(MouseEvent.CLICK, onClickMoveBtn);
_moveBtn.addEventListener(MouseEvent.MOUSE_DOWN, onDownMoveBtn);
_moveBtn.addEventListener(MouseEvent.MOUSE_UP, onUpMoveBtn);
_moveBtn.addEventListener(MouseEvent.DOUBLE_CLICK, onDlickMoveBtn);
_pareBtn.addEventListener(MouseEvent.CLICK, onClickParentBtn);
_childBtn.addEventListener(MouseEvent.CLICK, onClickChildBtn);
_broBtn.addEventListener(MouseEvent.CLICK, onClickBrotherBtn);
_infoBtn.addEventListener(MouseEvent.CLICK, onClickInfoBtn);
_closeBtn.addEventListener(MouseEvent.CLICK, onClickCloseBtn);
_struBtn.addEventListener(MouseEvent.CLICK, onClickStruBtn);
_filterBtn.addEventListener(MouseEvent.CLICK, onClickFilterBtn);
}
private function onUpMoveBtn(evt:MouseEvent):void{
dispatchEvent(new Event(UP_MOVE));
}
public function validate(target:DisplayObject):void{
_moveBtn.enabled = (_pareBtn.enabled = (_childBtn.enabled = (_broBtn.enabled = (_closeBtn.enabled = true))));
if ((target is Stage)){
_moveBtn.enabled = false;
};
if (target.parent){
if ((target.parent is Stage)){
_pareBtn.enabled = false;
};
if (target.parent.numChildren == 1){
_broBtn.enabled = false;
};
} else {
_pareBtn.enabled = false;
_broBtn.enabled = false;
};
if ((target is DisplayObjectContainer)){
} else {
_childBtn.enabled = false;
};
}
public function get barHeight():int{
return (_height);
}
private function onClickFilterBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_FILTER, true, true));
}
private function onClickBrotherBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_BROTHER));
}
public function dispose():void{
}
private function onClickMoveBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_MOVE));
}
private function onClickInfoBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_INFO, true, true));
}
private function onClickParentBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_PARENT));
}
private function onDownMoveBtn(evt:MouseEvent):void{
dispatchEvent(new Event(DOWN_MOVE));
}
private function onClickStruBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_STRUCTURE, true, true));
}
private function onClickChildBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_CHILD));
}
private function onClickCloseBtn(evt:MouseEvent):void{
dispatchEvent(new Event(PRESS_CLOSE));
}
}
}//package cn.itamt.utils.inspector.ui
Section 66
//Padding (cn.itamt.utils.inspector.ui.Padding)
package cn.itamt.utils.inspector.ui {
public class Padding {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
public function Padding(top:Number=10, right:Number=10, bottom:Number=10, left:Number=10):void{
super();
this.top = top;
this.right = right;
this.bottom = bottom;
this.left = left;
}
}
}//package cn.itamt.utils.inspector.ui
Section 67
//PropertiesView (cn.itamt.utils.inspector.ui.PropertiesView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
public class PropertiesView extends BaseInspectorView {
private var panels:Array;
public static const ID:String = "PropertyPanel";
public function PropertiesView(){
super();
}
override public function onTurnOff():void{
var panel:PropertiesViewPanel;
super.onTurnOff();
if (panels){
for each (panel in panels) {
this._inspector.stage.removeChild(panel);
};
};
this.panels = null;
}
override public function contains(child:DisplayObject):Boolean{
var l:int;
var i:int;
if (panels){
l = panels.length;
i = 0;
while (i < l) {
if ((((panels[i] == child)) || (panels[i].contains(child)))){
return (true);
};
i++;
};
};
return (false);
}
override public function onUpdate(target:InspectTarget=null):void{
var panel:PropertiesViewPanel;
for each (panel in this.panels) {
if (((panel.getSingleMode()) || ((panel.getCurTarget() == target.displayObject)))){
panel.onInspect(target.displayObject);
};
};
}
override public function onLiveInspect(target:InspectTarget):void{
}
override public function onTurnOn():void{
super.onTurnOn();
if (this.panels == null){
this.panels = [];
};
var panel:PropertiesViewPanel = new PropertiesViewPanel();
panel.x = (panel.y = 10);
this.panels.push(panel);
this._inspector.stage.addChild(panel);
panel.addEventListener(Event.CLOSE, onClickClose, false, 0, true);
}
override public function getInspectorViewClassID():String{
return (PropertiesView.ID);
}
private function onClickClose(evt:Event):void{
var panel:PropertiesViewPanel = (evt.target as PropertiesViewPanel);
var t:int = this.panels.indexOf(panel);
if (t > -1){
this.panels.splice(t, 1);
this._inspector.stage.removeChild(panel);
};
if (this.panels.length == 0){
this._inspector.unregisterViewById(PropertiesView.ID);
};
}
override public function onInspect(target:InspectTarget):void{
var panel:PropertiesViewPanel;
super.onInspect(target);
for each (panel in this.panels) {
if (panel.getSingleMode()){
panel.onInspect(target.displayObject);
return;
};
};
panel = new PropertiesViewPanel();
this.panels.push(panel);
this._inspector.stage.addChild(panel);
panel.addEventListener(Event.CLOSE, onClickClose, false, 0, true);
panel.onInspect(target.displayObject);
}
override public function onUnRegister(inspector:Inspector):void{
var panel:PropertiesViewPanel;
if (panels){
for each (panel in panels) {
this._inspector.stage.removeChild(panel);
};
};
this.panels = null;
}
}
}//package cn.itamt.utils.inspector.ui
Section 68
//PropertiesViewPanel (cn.itamt.utils.inspector.ui.PropertiesViewPanel)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.events.*;
import cn.itamt.utils.inspector.lang.*;
import cn.itamt.utils.inspector.renders.*;
import flash.utils.*;
public class PropertiesViewPanel extends InspectorViewPanel {
private var fullBtn:InspectorViewFullButton;
private var state:int;// = 1
private var viewPropBtn:InspectorTabLabelButton;
private var favProps:Array;
private var viewMethodBtn:InspectorTabLabelButton;
private var singletonBtn:InspectorViewSingletonButton;
private var renders:Array;
private var list:Sprite;
private var listMethod:Sprite;
private var propList:Array;
private var curTarget:DisplayObject;
private var methodArray:Array;
public static const METHOD_STATE:int = 2;
public static const PROP_STATE:int = 1;
public function PropertiesViewPanel(w:Number=240, h:Number=170){
favProps = ["x", "y", "width", "height", "scaleX", "scaleY", "alpha", "rotation"];
super("Property", w, h);
_title.mouseEnabled = (_title.mouseWheelEnabled = false);
this._padding = new Padding(33, 10, 40, 10);
renders = [];
this._minW = 240;
this._minH = 170;
list = new Sprite();
this.setContent(list);
fullBtn = new InspectorViewFullButton();
fullBtn.addEventListener(MouseEvent.CLICK, onClickFull);
addChild(fullBtn);
singletonBtn = new InspectorViewSingletonButton();
singletonBtn.addEventListener(MouseEvent.CLICK, onClickSingleton);
addChild(singletonBtn);
this.viewPropBtn = new InspectorTabLabelButton(InspectorLanguageManager.getStr("Property"), true);
this.viewPropBtn.tip = InspectorLanguageManager.getStr("ViewProperties");
this.viewPropBtn.addEventListener(MouseEvent.CLICK, onViewProp);
addChild(this.viewPropBtn);
this.viewMethodBtn = new InspectorTabLabelButton(InspectorLanguageManager.getStr("Method"));
this.viewMethodBtn.tip = InspectorLanguageManager.getStr("ViewMethods");
this.viewMethodBtn.addEventListener(MouseEvent.CLICK, onViewMethod);
addChild(this.viewMethodBtn);
this.addEventListener(PropertyEvent.UPDATE, onPropertyUpdate);
this.addEventListener(PropertyEvent.FAV, onFavProperty);
this.addEventListener(PropertyEvent.DEL_FAV, onDelFavProperty);
}
private function onFavProperty(evt:PropertyEvent):void{
var render:PropertyAccessorRender = (evt.target as PropertyAccessorRender);
var prop:String = String(render.xml.@name);
if (this.favProps.indexOf(prop) < 0){
this.favProps.unshift(prop);
this.propList.sort(compateAccessorName);
drawList();
};
}
public function getSingleMode():Boolean{
return (singletonBtn.normalMode);
}
private function methodDrawList():void{
var render:MethodRender;
this.listMethod.graphics.clear();
listMethod.graphics.lineTo(0, 0);
while (listMethod.numChildren) {
listMethod.removeChildAt(0);
};
var length:int = this.methodArray.length;
var i:int;
while (i < length) {
render = new MethodRender(210, 20);
render.setXML(this.curTarget, methodArray[i]);
render.y = (listMethod.height + 2);
listMethod.addChild(render);
i++;
};
}
private function compateAccessorName(a:XML, b:XML):Number{
var aN:String = String(a.@name);
var bN:String = String(b.@name);
if (favProps.indexOf(aN) > favProps.indexOf(bN)){
return (-1);
};
if (favProps.indexOf(aN) < favProps.indexOf(bN)){
return (1);
};
if (aN > bN){
return (1);
};
if (aN < bN){
return (-1);
};
return (0);
}
private function propDrawList():void{
var render:PropertyAccessorRender;
list.graphics.clear();
list.graphics.lineTo(0, 0);
while (list.numChildren) {
list.removeChildAt(0);
};
var l:int = propList.length;
var i:int;
while (i < l) {
if (i < favProps.length){
if (this.favProps.indexOf(String(propList[i].@name)) > -1){
render = new PropertyAccessorRender(250, 20, true);
} else {
if (fullBtn.normalMode){
break;
} else {
render = new PropertyAccessorRender(250, 20);
};
};
} else {
if (fullBtn.normalMode){
break;
} else {
render = new PropertyAccessorRender(250, 20);
};
};
render.setXML(this.curTarget, propList[i]);
render.y = (list.height + 2);
list.addChild(render);
i++;
};
}
public function onInspectProp(object:DisplayObject):void{
var item:XML;
var xml:XML = describeType(object);
var tmp:XMLList = xml.accessor;
propList = [];
for each (item in tmp) {
propList.push(item);
};
propList.sort(compateAccessorName);
this.onClickFull();
}
public function onUpdate(obj:DisplayObject):void{
var i:int;
var render:PropertyAccessorRender;
if (obj == curTarget){
i = 0;
while (i < list.numChildren) {
var _temp1 = i;
i = (i + 1);
render = (list.getChildAt(_temp1) as PropertyAccessorRender);
render.update();
};
};
}
private function drawList():void{
switch (this.state){
case PROP_STATE:
this.propDrawList();
break;
case METHOD_STATE:
this.methodDrawList();
break;
};
this.relayout();
}
public function getCurTarget():DisplayObject{
return (this.curTarget);
}
private function onDelFavProperty(evt:PropertyEvent):void{
var render:PropertyAccessorRender = (evt.target as PropertyAccessorRender);
var prop:String = String(render.xml.@name);
var t:int = this.favProps.indexOf(prop);
if (t >= 0){
this.favProps.splice(t, 1);
this.propList.sort(compateAccessorName);
drawList();
};
}
private function onClickSingleton(evt:MouseEvent=null):void{
if (evt){
evt.stopImmediatePropagation();
};
this.drawList();
if (singletonBtn.normalMode){
};
}
override public function open():void{
super.open();
this.viewMethodBtn.visible = (this.viewPropBtn.visible = true);
}
override public function relayout():void{
super.relayout();
fullBtn.x = (this.resizeBtn.x - this.fullBtn.width);
fullBtn.y = 5;
singletonBtn.x = ((this.fullBtn.x - this.singletonBtn.width) - 2);
singletonBtn.y = 5;
this.viewMethodBtn.x = ((_width - this._padding.right) - this.viewMethodBtn.width);
this.viewPropBtn.x = ((this.viewMethodBtn.x - 10) - this.viewPropBtn.width);
this.viewPropBtn.y = (this.viewMethodBtn.y = ((this._height - this.viewPropBtn.height) - ((_padding.bottom - viewPropBtn.height) / 2)));
if (this.state == PROP_STATE){
this.fullBtn.enabled = (this.fullBtn.mouseEnabled = true);
} else {
this.fullBtn.enabled = (this.fullBtn.mouseEnabled = false);
};
}
private function onViewMethod(event:MouseEvent):void{
this.state = METHOD_STATE;
if (listMethod == null){
listMethod = new Sprite();
};
this.setContent(listMethod);
this.onInspectMethod(this.curTarget);
this.viewMethodBtn.active = true;
this.viewPropBtn.active = false;
}
private function onViewProp(event:MouseEvent):void{
this.state = PROP_STATE;
this.setContent(list);
this.onInspectProp(this.curTarget);
this.viewMethodBtn.active = false;
this.viewPropBtn.active = true;
}
override public function hide():void{
super.hide();
this.viewMethodBtn.visible = (this.viewPropBtn.visible = false);
}
override protected function drawTitle():void{
_title.x = _padding.left;
_title.y = 7;
_title.width = (_title.textWidth + 4);
if (_title.width > (singletonBtn.x - _padding.left)){
_title.width = (singletonBtn.x - _padding.left);
};
}
public function onInspect(object:DisplayObject):void{
if (curTarget != object){
curTarget = object;
if (this.state == PROP_STATE){
this.onInspectProp(object);
} else {
this.onInspectMethod(curTarget);
};
this._title.htmlText = (((curTarget.name + "<font color=\"#cccccc\">(") + ClassTool.getShortClassName(curTarget)) + ")</font>");
this.drawTitle();
} else {
onUpdate(object);
};
}
public function onInspectMethod(object:DisplayObject=null):void{
var xml:XML;
var methods:XMLList;
var method:XML;
if (object != null){
if (curTarget != object){
curTarget = object;
};
xml = describeType(curTarget);
methods = xml.method;
methodArray = [];
for each (method in methods) {
methodArray.push(method);
};
methodArray.sort(compateAccessorName);
this.drawList();
};
}
private function onClickFull(evt:MouseEvent=null):void{
if (evt){
evt.stopImmediatePropagation();
};
this.drawList();
if (fullBtn.normalMode){
if (this.resizeBtn.normalMode){
this.resize(this._width, 270);
};
} else {
if (this.resizeBtn.normalMode){
this.resize(this._width, 400);
};
};
}
private function onPropertyUpdate(evt:PropertyEvent):void{
var editor:BasePropertyEditor = (evt.target as BasePropertyEditor);
curTarget[editor.getPropName()] = editor.getValue();
}
}
}//package cn.itamt.utils.inspector.ui
Section 69
//ResizerButton (cn.itamt.utils.inspector.ui.ResizerButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
public class ResizerButton extends SimpleButton {
public function ResizerButton(w:Number=10, h:Number=10){
super(buildBlockShape(w, h), buildBlockShape(w, h), buildBlockShape(w, h), buildBlockShape(w, h));
}
private function buildBlockShape(w:Number, h:Number, color:uint=0x464646):Shape{
var sp:Shape = new Shape();
sp.graphics.lineStyle(1, 0x666666, 1, false, "normal", CapsStyle.NONE, JointStyle.MITER);
sp.graphics.beginFill(color);
sp.graphics.moveTo(0, 0);
sp.graphics.lineTo(-(w), 0);
sp.graphics.lineTo(0, -(h));
sp.graphics.lineTo(0, 0);
sp.graphics.moveTo((-(w) / 2), 0);
sp.graphics.moveTo(0, (-(h) / 2));
sp.graphics.endFill();
return (sp);
}
}
}//package cn.itamt.utils.inspector.ui
Section 70
//StructureElementView (cn.itamt.utils.inspector.ui.StructureElementView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.output.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
import cn.itamt.utils.inspector.consts.*;
public class StructureElementView extends BaseDisplayItemView {
private var inited:Boolean;// = false
private var _tf:TextField;
private var btn:SimpleButton;
private var symbol:Bitmap;
public static var outputer:DisplayObjectInfoOutPuter;
public function StructureElementView():void{
super();
symbol = new Bitmap();
addChild(symbol);
_tf = InspectorTextField.create("", 0, 12);
_tf.selectable = false;
_tf.autoSize = "left";
addChild(_tf);
btn = new SimpleButton();
addChild(btn);
addEventListener(Event.ADDED_TO_STAGE, onAdded);
addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
}
private function onAdded(evt:Event):void{
if (inited){
return;
};
inited = true;
_tf.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
_tf.addEventListener(MouseEvent.CLICK, onClickItem);
btn.addEventListener(MouseEvent.CLICK, onClickExpand);
}
private function onRemove(evt:Event):void{
this.dispose();
}
public function dispose():void{
inited = false;
_tf.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
_tf.removeEventListener(MouseEvent.CLICK, onClickItem);
btn.removeEventListener(MouseEvent.CLICK, onClickExpand);
}
public function resetStyle():void{
_tf.background = false;
_tf.border = false;
}
private function onClickExpand(evt:MouseEvent):void{
_data.toggleExpand();
}
private function onClickItem(evt:MouseEvent):void{
evt.stopImmediatePropagation();
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.CLICK, true, true));
}
override public function setData(value:DisplayItemData):void{
var bmp:Bitmap;
this._data = value;
if (outputer == null){
outputer = new StructureTreeItemInfoOutputer();
};
_tf.htmlText = outputer.output(this._data.displayObject);
if (_data != value){
if (_data){
_data.removeEventListener(DisplayItemEvent.CHANGE, onDataChange);
};
_data = value;
_data.addEventListener(DisplayItemEvent.CHANGE, onDataChange, false, 0, true);
};
if (_data.hasChildren){
btn.visible = true;
if (_data.isExpand){
bmp = new Bitmap(InspectorSymbolIcon.getIcon(InspectorSymbolIcon.CLLOAPSE));
} else {
bmp = new Bitmap(InspectorSymbolIcon.getIcon(InspectorSymbolIcon.EXPAND));
};
this.btn.upState = (this.btn.downState = (this.btn.overState = (this.btn.hitTestState = bmp)));
} else {
btn.visible = false;
};
symbol.bitmapData = InspectorSymbolIcon.getIconByClass(this._data.displayObject);
var level:int = DisplayObjectTool.getDisplayObjectLevel(_data.displayObject);
btn.x = (level * 16);
symbol.x = (btn.x + btn.width);
_tf.x = (symbol.x + symbol.width);
resetStyle();
if (_data.isOnInspect){
_tf.background = true;
_tf.backgroundColor = 0xFF;
};
if (_data.isOnLiveInspect){
this._tf.border = true;
this._tf.borderColor = 0xFF00FF;
};
}
private function onDataChange(evt:DisplayItemEvent):void{
this.setData(_data);
}
private function onMouseOver(evt:MouseEvent):void{
evt.stopImmediatePropagation();
this.dispatchEvent(new DisplayItemEvent(DisplayItemEvent.OVER, true, true));
}
}
}//package cn.itamt.utils.inspector.ui
Section 71
//StructureView (cn.itamt.utils.inspector.ui.StructureView)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.output.*;
import cn.itamt.utils.inspector.events.*;
public class StructureView extends BaseInspectorView {
private var panel:StructureViewPanel;
private var liveTarget:InspectTarget;
private var treeView:DisplayObjectTree;
public static const ID:String = "StructurePanel";
public function StructureView():void{
super();
}
private function onRefresh(evt:Event):void{
this.onInspect(this.target);
}
override public function onStartLiveInspect():void{
var item:DisplayItemData;
if (this.target){
item = this.treeView.getDisplayItem(this.target.displayObject);
item.onInspect(false);
};
}
override public function onUpdate(target:InspectTarget=null):void{
this.treeView.drawList();
}
private function onClickElement(evt:DisplayItemEvent):void{
var ele:StructureElementView;
if ((evt.target is StructureElementView)){
ele = (evt.target as StructureElementView);
evt.stopImmediatePropagation();
this._inspector.inspect(ele.data.displayObject);
};
}
private function onClickClose(evt:Event):void{
this._inspector.unregisterViewById(StructureView.ID);
}
override public function onUnRegister(inspector:Inspector):void{
if (this.panel.stage){
this.panel.parent.removeChild(this.panel);
};
this.treeView.removeEventListener(DisplayItemEvent.OVER, onOverElement);
this.treeView.removeEventListener(DisplayItemEvent.CLICK, onClickElement);
this.panel.removeEventListener(MouseEvent.ROLL_OUT, onRollOutPanel);
this.panel.removeEventListener(Event.CLOSE, onClickClose);
this.panel.removeEventListener(TextEvent.LINK, onClickLinkTarget);
this.panel = null;
this.treeView = null;
}
override public function contains(child:DisplayObject):Boolean{
if (panel){
return ((((panel == child)) || (panel.contains(child))));
};
return (false);
}
override public function onLiveInspect($target:InspectTarget):void{
var item:DisplayItemData;
var view:StructureElementView;
if ($target == this.liveTarget){
return;
};
if (this.liveTarget){
item = this.treeView.getDisplayItem(this.liveTarget.displayObject);
item.onLiveInspect(false);
};
liveTarget = $target;
item = this.treeView.getDisplayItem(this.liveTarget.displayObject);
item.onLiveInspect(true);
this.treeView.onInspect(liveTarget.displayObject);
this.panel.onLiveInspect(liveTarget.displayObject);
view = this.treeView.getObjectRenderer(liveTarget.displayObject);
if (view){
this.panel.showContentArea(view.getBounds(view.parent));
};
}
override public function onTurnOff():void{
this.treeView.removeEventListener(DisplayItemEvent.OVER, onOverElement);
this.treeView.removeEventListener(DisplayItemEvent.CLICK, onClickElement);
this.panel.removeEventListener(MouseEvent.ROLL_OUT, onRollOutPanel);
this.panel.removeEventListener(Event.CLOSE, onClickClose);
this.panel.removeEventListener(TextEvent.LINK, onClickLinkTarget);
this.panel.removeEventListener(InspectEvent.REFRESH, onRefresh);
this._inspector.stage.removeChild(this.panel);
this.panel = null;
this.treeView = null;
}
override public function getInspectorViewClassID():String{
return (StructureView.ID);
}
public function dispose():void{
}
private function onRollOutPanel(evt:MouseEvent):void{
if (!this._inspector.isLiveInspecting){
if (target){
if (!this.panel.hitTestPoint(evt.stageX, evt.stageY)){
this._inspector.inspect(target.displayObject);
};
};
};
}
private function onClickLinkTarget(evt:TextEvent):void{
var level:uint = uint(evt.text);
var object:DisplayObject = this.panel.inspectObject;
while (level--) {
object = object.parent;
};
this._inspector.inspect(object);
}
override public function onInspect($target:InspectTarget):void{
var item:DisplayItemData;
var view:StructureElementView;
if (this.liveTarget){
item = this.treeView.getDisplayItem(liveTarget.displayObject);
item.onLiveInspect(false);
};
if (this.target){
item = this.treeView.getDisplayItem(target.displayObject);
item.onInspect(false);
};
this.target = $target;
item = this.treeView.getDisplayItem(target.displayObject);
item.onInspect(true);
this.treeView.onInspect(target.displayObject);
this.panel.onInspect(target.displayObject);
view = this.treeView.getObjectRenderer(target.displayObject);
if (view){
this.panel.showContentArea(view.getBounds(view.parent));
};
}
private function onOverElement(evt:DisplayItemEvent):void{
var ele:StructureElementView;
if ((evt.target is StructureElementView)){
ele = (evt.target as StructureElementView);
evt.stopImmediatePropagation();
this._inspector.liveInspect(ele.data.displayObject);
};
}
override public function onTurnOn():void{
this.panel = new StructureViewPanel(200, 200);
this.treeView = new DisplayObjectTree(this._inspector.stage, StructureElementView);
this.treeView.addEventListener(DisplayItemEvent.OVER, onOverElement, false, 0, true);
this.treeView.addEventListener(DisplayItemEvent.CLICK, onClickElement, false, 0, true);
this.panel.addEventListener(MouseEvent.ROLL_OUT, onRollOutPanel, false, 0, true);
this.panel.addEventListener(Event.CLOSE, onClickClose, false, 0, true);
this.panel.addEventListener(TextEvent.LINK, onClickLinkTarget);
this.panel.addEventListener(InspectEvent.REFRESH, onRefresh, false, 0, true);
this.treeView.filterFun = _inspector.isInspectView;
this.panel.setContent(treeView);
this.panel.x = (this.panel.y = 10);
this._inspector.stage.addChild(this.panel);
}
override public function setInfoOutputer(outputer:DisplayObjectInfoOutPuter):void{
this.panel.statusOutputer = outputer;
}
}
}//package cn.itamt.utils.inspector.ui
Section 72
//StructureViewPanel (cn.itamt.utils.inspector.ui.StructureViewPanel)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.*;
import cn.itamt.utils.inspector.output.*;
import cn.itamt.utils.inspector.events.*;
import flash.text.*;
public class StructureViewPanel extends InspectorViewPanel {
public var statusOutputer:DisplayObjectInfoOutPuter;
private var refreshBtn:InspectorViewRefreshButton;
private var bugBtn:InspectorViewBugButton;
private var _inspectObject:DisplayObject;
private var _statusInfo:TextField;
public function StructureViewPanel(w:Number=200, h:Number=200){
super("Structure", w, h);
_padding = new Padding(33, 10, 30, 10);
_statusInfo = InspectorTextField.create("", 0xCCCCCC, 12);
_statusInfo.selectable = false;
_statusInfo.height = 20;
var styleSheet:StyleSheet = new StyleSheet();
styleSheet.setStyle("a:hover", {color:"#ff0000", textDecoration:"underline"});
_title.styleSheet = styleSheet;
addChild(_statusInfo);
bugBtn = new InspectorViewBugButton();
bugBtn.addEventListener(MouseEvent.CLICK, onClickBug);
addChild(bugBtn);
refreshBtn = new InspectorViewRefreshButton();
refreshBtn.addEventListener(MouseEvent.CLICK, onClickRefresh);
addChild(refreshBtn);
}
private function getChainInfoStr(child:DisplayObject, level:uint=0):String{
var str = (((("<a href=\"event:" + level) + "\">") + ClassTool.getShortClassName(child)) + "</a>");
if (child.parent){
var _temp1 = str;
level = (level + 1);
str = (_temp1 + ("<font color=\"#cccccc\">-></font>" + getChainInfoStr(child.parent, level)));
};
return (str);
}
override public function hide():void{
super.hide();
_statusInfo.visible = false;
bugBtn.visible = false;
}
override public function open():void{
super.open();
_statusInfo.visible = true;
bugBtn.visible = true;
}
private function onClickBug(evt:MouseEvent=null):void{
var panel:BugReportPanel;
if (this.stage){
panel = new BugReportPanel();
panel.x = ((this.stage.stageWidth / 2) - (panel.width / 2));
panel.y = ((this.stage.stageHeight / 2) - (panel.height / 2));
this.stage.addChild(panel);
};
}
private function updateStatus():void{
if (statusOutputer == null){
statusOutputer = new DisplayObjectChildrenInfoOutputer();
};
this._statusInfo.htmlText = statusOutputer.output(_inspectObject);
this.drawStatus();
}
private function onClickRefresh(evt:MouseEvent=null):void{
evt.stopImmediatePropagation();
dispatchEvent(new Event(InspectEvent.REFRESH));
}
override protected function drawTitle():void{
_title.x = _padding.left;
_title.y = 7;
_title.width = (_title.textWidth + 4);
if (_title.width > ((refreshBtn.x - _padding.left) - 3)){
_title.width = ((refreshBtn.x - _padding.left) - 3);
};
}
public function onInspect(object:DisplayObject):void{
_inspectObject = object;
_title.htmlText = getChainInfoStr(object);
this.drawTitle();
this.updateStatus();
}
private function drawStatus():void{
_statusInfo.width = (_statusInfo.textWidth + 4);
if (_statusInfo.width > ((_width - _padding.left) - _padding.right)){
_statusInfo.width = ((_width - _padding.left) - _padding.right);
};
_statusInfo.x = _padding.left;
_statusInfo.y = ((_height - (_padding.bottom / 2)) - (_statusInfo.height / 2));
}
public function onLiveInspect(object:DisplayObject):void{
_inspectObject = object;
this.updateStatus();
}
public function get inspectObject():DisplayObject{
return (_inspectObject);
}
override public function relayout():void{
super.relayout();
this.bugBtn.x = ((_width - this._padding.right) - this.bugBtn.width);
this.bugBtn.y = ((_height - 5) - this.bugBtn.height);
refreshBtn.x = ((this.resizeBtn.x - this.resizeBtn.width) - 2);
refreshBtn.y = 5;
this.drawStatus();
}
}
}//package cn.itamt.utils.inspector.ui
Section 73
//ToggleBooleanButton (cn.itamt.utils.inspector.ui.ToggleBooleanButton)
package cn.itamt.utils.inspector.ui {
import flash.display.*;
import flash.events.*;
public class ToggleBooleanButton extends SimpleButton {
private var _value:Boolean;
public function ToggleBooleanButton(value:Boolean=true){
super();
this.tabEnabled = false;
this._value = value;
this.updateMode();
addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(evt:MouseEvent):void{
this._value = !(this._value);
this.updateMode();
dispatchEvent(new Event(Event.CHANGE));
}
public function get value():Boolean{
return (_value);
}
public function set value(v:Boolean):void{
_value = v;
this.updateMode();
}
private function updateMode():void{
var sp:Shape = new Shape();
if (this._value){
sp.graphics.lineStyle(3, 0x282828);
sp.graphics.beginFill(6716929);
sp.graphics.drawCircle(7, 7, 7);
sp.graphics.endFill();
} else {
sp.graphics.lineStyle(3, 0x282828);
sp.graphics.beginFill(0x666666);
sp.graphics.drawCircle(7, 7, 7);
sp.graphics.endFill();
};
this.downState = (this.overState = (this.upState = (this.hitTestState = sp)));
}
}
}//package cn.itamt.utils.inspector.ui
Section 74
//Base64 (cn.itamt.utils.Base64)
package cn.itamt.utils {
import flash.utils.*;
public class Base64 {
public static const version:String = "1.1.0";
private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
public function Base64(){
super();
throw (new Error("Base64 class is static container only"));
}
public static function encode(data:String):String{
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(data);
return (encodeByteArray(bytes));
}
public static function encodeByteArray(data:ByteArray):String{
var dataBuffer:Array;
var i:uint;
var j:uint;
var k:uint;
var output:String = "";
var outputBuffer:Array = new Array(4);
data.position = 0;
while (data.bytesAvailable > 0) {
dataBuffer = new Array();
i = 0;
while ((((i < 3)) && ((data.bytesAvailable > 0)))) {
dataBuffer[i] = data.readUnsignedByte();
i++;
};
outputBuffer[0] = ((dataBuffer[0] & 252) >> 2);
outputBuffer[1] = (((dataBuffer[0] & 3) << 4) | (dataBuffer[1] >> 4));
outputBuffer[2] = (((dataBuffer[1] & 15) << 2) | (dataBuffer[2] >> 6));
outputBuffer[3] = (dataBuffer[2] & 63);
j = dataBuffer.length;
while (j < 3) {
outputBuffer[(j + 1)] = 64;
j++;
};
k = 0;
while (k < outputBuffer.length) {
output = (output + BASE64_CHARS.charAt(outputBuffer[k]));
k++;
};
};
return (output);
}
public static function decode(data:String):String{
var bytes:ByteArray = decodeToByteArray(data);
return (bytes.readUTFBytes(bytes.length));
}
public static function decodeToByteArray(data:String):ByteArray{
var j:uint;
var k:uint;
var output:ByteArray = new ByteArray();
var dataBuffer:Array = new Array(4);
var outputBuffer:Array = new Array(3);
var i:uint;
while (i < data.length) {
j = 0;
while ((((j < 4)) && (((i + j) < data.length)))) {
dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt((i + j)));
j++;
};
outputBuffer[0] = ((dataBuffer[0] << 2) + ((dataBuffer[1] & 48) >> 4));
outputBuffer[1] = (((dataBuffer[1] & 15) << 4) + ((dataBuffer[2] & 60) >> 2));
outputBuffer[2] = (((dataBuffer[2] & 3) << 6) + dataBuffer[3]);
k = 0;
while (k < outputBuffer.length) {
if (dataBuffer[(k + 1)] == 64){
break;
};
output.writeByte(outputBuffer[k]);
k++;
};
i = (i + 4);
};
output.position = 0;
return (output);
}
}
}//package cn.itamt.utils
Section 75
//BmdStrConverter (cn.itamt.utils.BmdStrConverter)
package cn.itamt.utils {
import flash.display.*;
import flash.utils.*;
public class BmdStrConverter {
public function BmdStrConverter(){
super();
}
public static function bmd2str(bmd:BitmapData):String{
var str:String;
var ba:ByteArray = new ByteArray();
ba.writeUnsignedInt(bmd.width);
ba.writeUnsignedInt(bmd.height);
ba.writeBoolean(bmd.transparent);
ba.writeBytes(bmd.getPixels(bmd.rect));
str = Base64.encodeByteArray(ba);
return (str);
}
public static function str2bmd(base64Str:String):BitmapData{
var bmd:BitmapData;
var ba:ByteArray = Base64.decodeToByteArray(base64Str);
bmd = new BitmapData(ba.readUnsignedInt(), ba.readUnsignedInt(), ba.readBoolean(), 0);
bmd.setPixels(bmd.rect, ba);
return (bmd);
}
}
}//package cn.itamt.utils
Section 76
//ClassTool (cn.itamt.utils.ClassTool)
package cn.itamt.utils {
import flash.utils.*;
public class ClassTool {
private static var class_constant_cache:Dictionary;
public function ClassTool(){
super();
}
public static function getClassConstantsName(clazz:Class, cache:Boolean=true):Array{
var arr:Array;
var xml:XML;
var list:XMLList;
var constant:XML;
if (cache){
if (class_constant_cache == null){
class_constant_cache = new Dictionary();
};
arr = class_constant_cache[clazz];
if (arr == null){
arr = [];
xml = describeType(clazz);
list = xml.constant;
for each (constant in list) {
arr.push(constant.@name);
};
class_constant_cache[clazz] = arr;
};
} else {
arr = [];
xml = describeType(clazz);
list = xml.constant;
for each (constant in list) {
arr.push(constant.@name);
};
};
return (arr);
}
public static function getShortClassName(value):String{
var str:String = getQualifiedClassName(value);
return (str.slice(((str.lastIndexOf("::"))>=0) ? (str.lastIndexOf("::") + 2) : 0));
}
public static function getClassName(value):String{
return (getQualifiedClassName(value));
}
}
}//package cn.itamt.utils
Section 77
//DisplayObjectTool (cn.itamt.utils.DisplayObjectTool)
package cn.itamt.utils {
import flash.display.*;
import flash.events.*;
public class DisplayObjectTool {
public function DisplayObjectTool(){
super();
}
public static function removeAllChildAndChild(container:DisplayObjectContainer):void{
while (container.numChildren) {
if ((container.getChildAt(0) is DisplayObjectContainer)){
removeAllChildAndChild((container.getChildAt(0) as DisplayObjectContainer));
};
container.removeChildAt(0);
};
}
public static function localRotationToGlobal(child:DisplayObject):Number{
var greed:Number = child.rotation;
if (child.parent){
greed = (greed + localRotationToGlobal(child.parent));
};
return (greed);
}
public static function getDisplayObjectLevel(object:DisplayObject):int{
var i:int;
if ((object is Stage)){
return (0);
};
if (object.stage){
i = 0;
while (object.parent) {
object = object.parent;
i++;
};
return (i);
//unresolved jump
};
return (-1);
}
public static function global2LocalMath(child:DisplayObject, c:Number, mathFun:Function):Number{
var num:Number;
num = (c * mathFun.call(null, ((child.rotation * Math.PI) / 180)));
if (child.parent){
num = (num * global2LocalMath(child.parent, num, mathFun));
};
return (num);
}
public static function getAllChildrenNum(container:DisplayObjectContainer):uint{
var child:DisplayObject;
var num:uint = container.numChildren;
var i:int;
while (i < container.numChildren) {
child = container.getChildAt(i);
if ((child is DisplayObjectContainer)){
num = (num + getAllChildrenNum((child as DisplayObjectContainer)));
};
i++;
};
return (num);
}
public static function swapToTop(obj:DisplayObject):void{
var fun:Function;
var obj = obj;
if (obj.stage){
obj.stage.invalidate();
var _local3 = function (evt:Event):void{
if (((((obj) && (obj.stage))) && (fun))){
obj.stage.removeEventListener(Event.RENDER, fun);
obj.parent.setChildIndex(obj, (obj.parent.numChildren - 1));
};
};
fun = _local3;
obj.stage.addEventListener(Event.RENDER, _local3);
};
}
}
}//package cn.itamt.utils
Section 78
//Inspector (cn.itamt.utils.Inspector)
package cn.itamt.utils {
import flash.display.*;
import flash.events.*;
import cn.itamt.utils.inspector.data.*;
import cn.itamt.utils.inspector.interfaces.*;
import flash.geom.*;
import cn.itamt.utils.inspector.ui.*;
import flash.text.*;
import flash.utils.*;
import cn.itamt.utils.inspector.filter.*;
import cn.itamt.utils.inspector.key.*;
import flash.filters.*;
public class Inspector {
private var _isLiveInspecting:Boolean;// = false
private var _isOn:Boolean;// = false
private var filterManager:InspectorFilterManager;
private var keysManager:InspectorKeyManager;
private var liveInspectFilter:Class;
private var _tMap:Dictionary;
private var structureView:StructureView;
private var _root:DisplayObjectContainer;
private var curInspectEle:InspectTarget;
private var ctmenu:InspectorRightMenu;
private var inspectView:LiveInspectView;
private var _tip:Sprite;
private var _views:Dictionary;
private var propertiesView:PropertiesView;
private var _stage:Stage;
public static const VERSION:String = "1.0.4";
private static var _instance:Inspector;
public function Inspector(sf:SingletonEnforcer){
super();
liveInspectFilter = DisplayObject;
}
public function get stage():Stage{
return (_stage);
}
private function onShowTip(evt:Event):void{
var target:InspectorViewOperationButton;
var _tf:TextField;
var rect:Rectangle;
if ((evt.target is InspectorViewOperationButton)){
target = (evt.target as InspectorViewOperationButton);
if (_tip){
_tip.graphics.clear();
DisplayObjectTool.removeAllChildAndChild(_tip);
if (_tip.stage){
this._tip.parent.removeChild(_tip);
};
_tip = null;
};
_tip = new Sprite();
_tip.filters = [new GlowFilter(0, 1, 16, 16, 1)];
_tip.mouseEnabled = (_tip.mouseChildren = false);
_tf = InspectorTextField.create(target.tip, 0xFFFFFF, 15, 5, 0, "left");
_tf.y = (26 - _tf.height);
_tip.addChild(_tf);
_tip.graphics.beginFill(0);
_tip.graphics.drawRoundRect(0, (26 - _tf.height), (_tf.width + 10), _tf.height, 10, 10);
_tip.graphics.endFill();
_tip.graphics.beginFill(0);
_tip.graphics.moveTo(9, 25);
_tip.graphics.lineTo(15, 25);
_tip.graphics.lineTo(12, 30);
_tip.graphics.lineTo(9, 25);
_tip.graphics.endFill();
target.parent.addChild(_tip);
rect = target.getBounds(target.parent);
_tip.x = (rect.x - 5);
_tip.y = (rect.y - 35);
DisplayObjectTool.swapToTop(_tip);
};
evt.stopImmediatePropagation();
}
private function getInspectTarget(target:DisplayObject):InspectTarget{
if (_tMap == null){
_tMap = new Dictionary();
};
if (_tMap[target] == null){
_tMap[target] = new InspectTarget(target);
};
return (_tMap[target]);
}
public function init(root:DisplayObjectContainer, withMenu:Boolean=true, withKeys:Boolean=true, showPropPanelAtFirst:Boolean=false, showStructPanelAtFirst:Boolean=false):void{
this._root = root;
this._stage = root.stage;
this._stage.addEventListener(InspectorViewOperationButton.EVT_SHOW_TIP, onShowTip);
this._stage.addEventListener(InspectorViewOperationButton.EVT_REMOVE_TIP, onRemoveTip);
if (stage == null){
throw (new Error("Set inspector's stage before you call inspector.init(); "));
};
if (withMenu){
ctmenu = new InspectorRightMenu();
registerView(ctmenu, InspectorRightMenu.ID);
};
inspectView = new LiveInspectView();
registerView(inspectView, LiveInspectView.ID);
structureView = new StructureView();
if (showStructPanelAtFirst){
registerView(structureView, StructureView.ID);
};
propertiesView = new PropertiesView();
if (showPropPanelAtFirst){
registerView(this.propertiesView, PropertiesView.ID);
};
keysManager = new InspectorKeyManager();
this.keysManager.bindKey2View([17, 83], StructureView.ID);
this.keysManager.bindKey2View([17, 84], LiveInspectView.ID);
this.keysManager.bindKey2View([17, 80], PropertiesView.ID);
this.keysManager.bindKey2Fun([17, 73], this.toggleTurn);
if (withKeys){
this.registerView(keysManager, keysManager.getInspectorViewClassID());
};
filterManager = new InspectorFilterManager();
this.registerView(filterManager, filterManager.getInspectorViewClassID());
}
public function liveInspect(ele:DisplayObject, checkIsInspectorView:Boolean=true):void{
var view:IInspectorView;
if (((curInspectEle) && ((curInspectEle.displayObject == ele)))){
return;
};
if (checkIsInspectorView){
if (isInspectView(ele)){
return;
};
};
curInspectEle = getInspectTarget(ele);
for each (view in _views) {
view.onLiveInspect(curInspectEle);
};
}
public function inspect(ele:DisplayObject):void{
var view:IInspectorView;
if (isInspectView(ele)){
return;
};
stopLiveInspect();
curInspectEle = getInspectTarget(ele);
for each (view in _views) {
view.onInspect(curInspectEle);
};
}
private function enterFrameHandler(evt:Event=null):void{
var target:DisplayObject;
var mousePos:Point = new Point(stage.mouseX, stage.mouseY);
var objs:Array = stage.getObjectsUnderPoint(mousePos);
var l:int = objs.length;
if (l){
while (l--) {
target = objs[l];
if (isInspectView(target)){
} else {
while (target) {
if ((target is liveInspectFilter)){
liveInspect(target, false);
return;
};
if (((target.parent) && (!((target.parent == this.stage))))){
target = target.parent;
} else {
break;
};
};
};
};
};
}
public function get isLiveInspecting():Boolean{
return (_isLiveInspecting);
}
public function stopLiveInspect():void{
var view:IInspectorView;
_isLiveInspecting = false;
this.stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
for each (view in _views) {
view.onStopLiveInspect();
};
}
public function get isOn():Boolean{
return (_isOn);
}
public function turnOff():void{
var view:IInspectorView;
this.stopLiveInspect();
if (!_isOn){
return;
};
_isOn = false;
curInspectEle = null;
for each (view in _views) {
view.onTurnOff();
};
}
public function turnOn():void{
var view:IInspectorView;
if (_isOn){
return;
};
_isOn = true;
curInspectEle = null;
for each (view in _views) {
view.onTurnOn();
};
this.startLiveInspect();
}
public function startLiveInspect():void{
var view:IInspectorView;
if (!_isLiveInspecting){
curInspectEle = null;
_isLiveInspecting = true;
this.stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
for each (view in _views) {
view.onStartLiveInspect();
};
};
}
private function onSthAdd(evt:Event):void{
var view:IInspectorView;
if (isInspectView((evt.target as DisplayObject))){
return;
};
if (this._isOn){
for each (view in _views) {
view.onUpdate(curInspectEle);
};
};
}
public function isInspectView(target:DisplayObject):Boolean{
var view:IInspectorView;
for each (view in _views) {
if (view.contains(target)){
return (true);
};
};
return (false);
}
public function set inspectFilter(value:Class):void{
this.liveInspectFilter = value;
}
public function registerViewById(id:String):void{
switch (id){
case InspectorRightMenu.ID:
this.registerView(this.ctmenu, id);
break;
case LiveInspectView.ID:
this.registerView(this.inspectView, id);
break;
case StructureView.ID:
this.registerView(this.structureView, id);
break;
case PropertiesView.ID:
this.registerView(this.propertiesView, id);
break;
};
}
public function getCurInspectTarget():InspectTarget{
return (curInspectEle);
}
private function onRemoveTip(evt:Event):void{
if (_tip){
_tip.graphics.clear();
DisplayObjectTool.removeAllChildAndChild(_tip);
if (_tip.stage){
this._tip.parent.removeChild(_tip);
};
_tip = null;
};
evt.stopImmediatePropagation();
}
public function get root():DisplayObjectContainer{
return (_root);
}
public function registerView(view:IInspectorView, id:String=null):void{
var item:IInspectorView;
if (_views == null){
_views = new Dictionary();
};
if (id == null){
id = view.getInspectorViewClassID();
};
if (view != _views[id]){
_views[id] = view;
view.onRegister(this);
};
for each (item in _views) {
item.onRegisterView(id);
};
}
public function setInspectFilter(clazz:Class):void{
var view:IInspectorView;
this.liveInspectFilter = clazz;
for each (view in _views) {
view.onInspectMode(clazz);
};
}
public function toggleViewByID(viewID:String):void{
if (_views[viewID]){
this.unregisterViewById(viewID);
} else {
this.registerViewById(viewID);
};
}
private function onSthRemove(evt:Event):void{
var view:IInspectorView;
if (isInspectView((evt.target as DisplayObject))){
return;
};
if (this._isOn){
for each (view in _views) {
view.onUpdate(curInspectEle);
};
};
}
public function toggleTurn():void{
if (_isOn){
this.turnOff();
} else {
this.turnOn();
};
}
public function unregisterViewById(id:String):void{
var view:IInspectorView;
if (_views[id]){
(_views[id] as IInspectorView).onUnRegister(this);
};
_views[id] = null;
delete _views[id];
for each (view in _views) {
view.onUnregisterView(id);
};
}
public static function getInstance():Inspector{
if (_instance == null){
_instance = new Inspector(new SingletonEnforcer());
};
return (_instance);
}
}
}//package cn.itamt.utils
class SingletonEnforcer {
private function SingletonEnforcer(){
super();
}
}
Section 79
//ObjectPool (cn.itamt.utils.ObjectPool)
package cn.itamt.utils {
import flash.utils.*;
public class ObjectPool {
private static var pools:Dictionary = new Dictionary();
public function ObjectPool(){
super();
}
private static function getPool(type:Class):Array{
return (((type in pools)) ? pools[type] : pools[type] = new Array());
}
public static function getObject(type:Class, ... _args){
var pool:Array = getPool(type);
if (pool.length > 0){
return (pool.pop());
};
return (construct(type, _args));
}
public static function construct(type:Class, parameters:Array){
switch (parameters.length){
case 0:
return (new (type));
case 1:
return (new type(parameters[0]));
case 2:
return (new type(parameters[0], parameters[1]));
case 3:
return (new type(parameters[0], parameters[1], parameters[2]));
case 4:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3]));
case 5:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4]));
case 6:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5]));
case 7:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6]));
case 8:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7]));
case 9:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7], parameters[8]));
case 10:
return (new type(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7], parameters[8], parameters[9]));
default:
return (null);
};
}
public static function disposeObject(object, type:Class=null):void{
var typeName:String;
if (!type){
typeName = getQualifiedClassName(object);
type = (getDefinitionByName(typeName) as Class);
};
var pool:Array = getPool(type);
pool.push(object);
}
}
}//package cn.itamt.utils
Section 80
//CampaignInfo (com.google.analytics.campaign.CampaignInfo)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignInfo {
private var _new:Boolean;
private var _empty:Boolean;
public function CampaignInfo(empty:Boolean=true, newCampaign:Boolean=false){
super();
_empty = empty;
_new = newCampaign;
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function isNew():Boolean{
return (_new);
}
public function get utmcn():String{
return ("1");
}
public function isEmpty():Boolean{
return (_empty);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (((!(isEmpty())) && (isNew()))){
variables.utmcn = utmcn;
};
if (((!(isEmpty())) && (!(isNew())))){
variables.utmcr = utmcr;
};
return (variables);
}
public function get utmcr():String{
return ("1");
}
}
}//package com.google.analytics.campaign
Section 81
//CampaignKey (com.google.analytics.campaign.CampaignKey)
package com.google.analytics.campaign {
public class CampaignKey {
public var UCMD:String;// = "utm_medium"
public var UCID:String;// = "utm_id"
public var UCTR:String;// = "utm_term"
public var UCSR:String;// = "utm_source"
public var UCNO:String;// = "utm_nooverride"
public var UCCN:String;// = "utm_campaign"
public var UGCLID:String;// = "gclid"
public var UCCT:String;// = "utm_content"
public function CampaignKey(){
super();
}
}
}//package com.google.analytics.campaign
Section 82
//CampaignManager (com.google.analytics.campaign.CampaignManager)
package com.google.analytics.campaign {
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
public class CampaignManager {
private var _config:Configuration;
private var _domainHash:Number;
private var _debug:DebugConfiguration;
private var _timeStamp:Number;
private var _referrer:String;
private var _buffer:Buffer;
public static const trackingDelimiter:String = "|";
public function CampaignManager(config:Configuration, debug:DebugConfiguration, buffer:Buffer, domainHash:Number, referrer:String, timeStamp:Number){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_domainHash = domainHash;
_referrer = referrer;
_timeStamp = timeStamp;
}
public function getCampaignInformation(search:String, noSessionInformation:Boolean):CampaignInfo{
var campaignTracker:CampaignTracker;
var oldTracker:CampaignTracker;
var sessionCount:int;
var campInfo:CampaignInfo = new CampaignInfo();
var duplicateCampaign:Boolean;
var campNoOverride:Boolean;
var responseCount:int;
if (((_config.allowLinker) && (_buffer.isGenuine()))){
if (!_buffer.hasUTMZ()){
return (campInfo);
};
};
campaignTracker = getTrackerFromSearchString(search);
if (isValid(campaignTracker)){
campNoOverride = hasNoOverride(search);
if (((campNoOverride) && (!(_buffer.hasUTMZ())))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
campaignTracker = getOrganicCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(campaignTracker)))){
return (campInfo);
};
};
if (((!(isValid(campaignTracker))) && (noSessionInformation))){
campaignTracker = getReferrerCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(campaignTracker)))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
if (((!(_buffer.hasUTMZ())) && (noSessionInformation))){
campaignTracker = getDirectCampaign();
};
};
if (!isValid(campaignTracker)){
return (campInfo);
};
if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){
oldTracker = new CampaignTracker();
oldTracker.fromTrackerString(_buffer.utmz.campaignTracking);
duplicateCampaign = (oldTracker.toTrackerString() == campaignTracker.toTrackerString());
responseCount = _buffer.utmz.responseCount;
};
if (((!(duplicateCampaign)) || (noSessionInformation))){
sessionCount = _buffer.utma.sessionCount;
responseCount++;
if (sessionCount == 0){
sessionCount = 1;
};
_buffer.utmz.domainHash = _domainHash;
_buffer.utmz.campaignCreation = _timeStamp;
_buffer.utmz.campaignSessions = sessionCount;
_buffer.utmz.responseCount = responseCount;
_buffer.utmz.campaignTracking = campaignTracker.toTrackerString();
_debug.info(_buffer.utmz.toString(), VisualDebugMode.geek);
campInfo = new CampaignInfo(false, true);
} else {
campInfo = new CampaignInfo(false, false);
};
return (campInfo);
}
public function hasNoOverride(search:String):Boolean{
var key:CampaignKey = _config.campaignKey;
if (search == ""){
return (false);
};
var variables:Variables = new Variables(search);
var value:String = "";
if (variables.hasOwnProperty(key.UCNO)){
value = variables[key.UCNO];
switch (value){
case "1":
return (true);
case "":
case "0":
default:
return (false);
};
};
return (false);
}
public function getTrackerFromSearchString(search:String):CampaignTracker{
var organicCampaign:CampaignTracker = getOrganicCampaign();
var camp:CampaignTracker = new CampaignTracker();
var key:CampaignKey = _config.campaignKey;
if (search == ""){
return (camp);
};
var variables:Variables = new Variables(search);
if (variables.hasOwnProperty(key.UCID)){
camp.id = variables[key.UCID];
};
if (variables.hasOwnProperty(key.UCSR)){
camp.source = variables[key.UCSR];
};
if (variables.hasOwnProperty(key.UGCLID)){
camp.clickId = variables[key.UGCLID];
};
if (variables.hasOwnProperty(key.UCCN)){
camp.name = variables[key.UCCN];
} else {
camp.name = "(not set)";
};
if (variables.hasOwnProperty(key.UCMD)){
camp.medium = variables[key.UCMD];
} else {
camp.medium = "(not set)";
};
if (variables.hasOwnProperty(key.UCTR)){
camp.term = variables[key.UCTR];
} else {
if (((organicCampaign) && (!((organicCampaign.term == ""))))){
camp.term = organicCampaign.term;
};
};
if (variables.hasOwnProperty(key.UCCT)){
camp.content = variables[key.UCCT];
};
return (camp);
}
public function getOrganicCampaign():CampaignTracker{
var camp:CampaignTracker;
var tmp:Array;
var currentOrganicSource:OrganicReferrer;
var keyword:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
var ref:URL = new URL(_referrer);
var name:String = "";
if (ref.hostName != ""){
if (ref.hostName.indexOf(".") > -1){
tmp = ref.hostName.split(".");
switch (tmp.length){
case 2:
name = tmp[0];
break;
case 3:
name = tmp[1];
break;
};
};
};
if (_config.organic.match(name)){
currentOrganicSource = _config.organic.getReferrerByName(name);
keyword = _config.organic.getKeywordValue(currentOrganicSource, ref.search);
camp = new CampaignTracker();
camp.source = currentOrganicSource.engine;
camp.name = "(organic)";
camp.medium = "organic";
camp.term = keyword;
};
return (camp);
}
public function getDirectCampaign():CampaignTracker{
var camp:CampaignTracker = new CampaignTracker();
camp.source = "(direct)";
camp.name = "(direct)";
camp.medium = "(none)";
return (camp);
}
public function isIgnoredKeyword(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "organic")))){
return (_config.organic.isIgnoredKeyword(tracker.term));
};
return (false);
}
public function isIgnoredReferral(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "referral")))){
return (_config.organic.isIgnoredReferral(tracker.source));
};
return (false);
}
public function isValid(tracker:CampaignTracker):Boolean{
if (((tracker) && (tracker.isValid()))){
return (true);
};
return (false);
}
public function getReferrerCampaign():CampaignTracker{
var camp:CampaignTracker;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
var ref:URL = new URL(_referrer);
var hostname:String = ref.hostName;
var content:String = ref.path;
if (hostname.indexOf("www.") == 0){
hostname = hostname.substr(4);
};
camp = new CampaignTracker();
camp.source = hostname;
camp.name = "(referral)";
camp.medium = "referral";
camp.content = content;
return (camp);
}
public static function isInvalidReferrer(referrer:String):Boolean{
var url:URL;
if ((((((referrer == "")) || ((referrer == "-")))) || ((referrer == "0")))){
return (true);
};
if (referrer.indexOf("://") > -1){
url = new URL(referrer);
if ((((url.protocol == Protocols.file)) || ((url.protocol == Protocols.none)))){
return (true);
};
};
return (false);
}
public static function isFromGoogleCSE(referrer:String, config:Configuration):Boolean{
var url:URL = new URL(referrer);
if (url.hostName.indexOf(config.google) > -1){
if (url.search.indexOf((config.googleSearchParam + "=")) > -1){
if (url.path == ("/" + config.googleCsePath)){
return (true);
};
};
};
return (false);
}
}
}//package com.google.analytics.campaign
Section 83
//CampaignTracker (com.google.analytics.campaign.CampaignTracker)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignTracker {
public var content:String;
public var source:String;
public var clickId:String;
public var name:String;
public var term:String;
public var medium:String;
public var id:String;
public function CampaignTracker(id:String="", source:String="", clickId:String="", name:String="", medium:String="", term:String="", content:String=""){
super();
this.id = id;
this.source = source;
this.clickId = clickId;
this.name = name;
this.medium = medium;
this.term = term;
this.content = content;
}
public function isValid():Boolean{
if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){
return (true);
};
return (false);
}
public function toTrackerString():String{
var data:Array = [];
_addIfNotEmpty(data, "utmcsr=", source);
_addIfNotEmpty(data, "utmccn=", name);
_addIfNotEmpty(data, "utmcmd=", medium);
_addIfNotEmpty(data, "utmctr=", term);
_addIfNotEmpty(data, "utmcct=", content);
_addIfNotEmpty(data, "utmcid=", id);
_addIfNotEmpty(data, "utmgclid=", clickId);
return (data.join(CampaignManager.trackingDelimiter));
}
private function _addIfNotEmpty(arr:Array, field:String, value:String):void{
if (value != ""){
value = value.split("+").join("%20");
value = value.split(" ").join("%20");
arr.push((field + value));
};
}
public function fromTrackerString(tracker:String):void{
var data:String = tracker.split(CampaignManager.trackingDelimiter).join("&");
var vars:Variables = new Variables(data);
if (vars.hasOwnProperty("utmcid")){
this.id = vars["utmcid"];
};
if (vars.hasOwnProperty("utmcsr")){
this.source = vars["utmcsr"];
};
if (vars.hasOwnProperty("utmccn")){
this.name = vars["utmccn"];
};
if (vars.hasOwnProperty("utmcmd")){
this.medium = vars["utmcmd"];
};
if (vars.hasOwnProperty("utmctr")){
this.term = vars["utmctr"];
};
if (vars.hasOwnProperty("utmcct")){
this.content = vars["utmcct"];
};
if (vars.hasOwnProperty("utmgclid")){
this.clickId = vars["utmgclid"];
};
}
}
}//package com.google.analytics.campaign
Section 84
//BrowserInfo (com.google.analytics.core.BrowserInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.utils.*;
public class BrowserInfo {
private var _config:Configuration;
private var _info:Environment;
public function BrowserInfo(config:Configuration, info:Environment){
super();
_config = config;
_info = info;
}
public function get utmul():String{
return (_info.language.toLowerCase());
}
public function get utmje():String{
return ("0");
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function get utmsr():String{
return (((_info.screenWidth + "x") + _info.screenHeight));
}
public function get utmfl():String{
var v:Version;
if (_config.detectFlash){
v = _info.flashVersion;
return (((((v.major + ".") + v.minor) + " r") + v.build));
};
return ("-");
}
public function get utmcs():String{
return (_info.languageEncoding);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
variables.utmcs = utmcs;
variables.utmsr = utmsr;
variables.utmsc = utmsc;
variables.utmul = utmul;
variables.utmje = utmje;
variables.utmfl = utmfl;
return (variables);
}
public function get utmsc():String{
return ((_info.screenColorDepth + "-bit"));
}
}
}//package com.google.analytics.core
Section 85
//Buffer (com.google.analytics.core.Buffer)
package com.google.analytics.core {
import flash.events.*;
import flash.net.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.data.*;
public dynamic class Buffer {
private var _SO:SharedObject;
private var _OBJ:Object;
private var _utma:UTMA;
private var _utmb:UTMB;
private var _utmc:UTMC;
private var _debug:DebugConfiguration;
private var _utmk:UTMK;
private var _config:Configuration;
private var _utmv:UTMV;
private var _utmz:UTMZ;
private var _volatile:Boolean;
public function Buffer(config:Configuration, debug:DebugConfiguration, volatile:Boolean=false, data:Object=null){
var saveSO:Boolean;
var prop:String;
super();
_config = config;
_debug = debug;
UTMB.defaultTimespan = _config.sessionTimeout;
UTMZ.defaultTimespan = _config.conversionTimeout;
if (!volatile){
_SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath);
saveSO = false;
if (_SO.data.utma){
if (!hasUTMA()){
_createUMTA();
};
_utma.fromSharedObject(_SO.data.utma);
if (_debug.verbose){
_debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek);
};
if (_utma.isExpired()){
if (_debug.verbose){
_debug.warning("UTMA has expired", VisualDebugMode.advanced);
};
_clearUTMA();
saveSO = true;
};
};
if (_SO.data.utmb){
if (!hasUTMB()){
_createUMTB();
};
_utmb.fromSharedObject(_SO.data.utmb);
if (_debug.verbose){
_debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek);
};
if (_utmb.isExpired()){
if (_debug.verbose){
_debug.warning("UTMB has expired", VisualDebugMode.advanced);
};
_clearUTMB();
saveSO = true;
};
};
if (_SO.data.utmc){
delete _SO.data.utmc;
saveSO = true;
};
if (_SO.data.utmk){
if (!hasUTMK()){
_createUMTK();
};
_utmk.fromSharedObject(_SO.data.utmk);
if (_debug.verbose){
_debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek);
};
};
if (_SO.data.utmv){
if (!hasUTMV()){
_createUMTV();
};
_utmv.fromSharedObject(_SO.data.utmv);
if (_debug.verbose){
_debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek);
};
if (_utmv.isExpired()){
if (_debug.verbose){
_debug.warning("UTMV has expired", VisualDebugMode.advanced);
};
_clearUTMV();
saveSO = true;
};
};
if (_SO.data.utmz){
if (!hasUTMZ()){
_createUMTZ();
};
_utmz.fromSharedObject(_SO.data.utmz);
if (_debug.verbose){
_debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek);
};
if (_utmz.isExpired()){
if (_debug.verbose){
_debug.warning("UTMZ has expired", VisualDebugMode.advanced);
};
_clearUTMZ();
saveSO = true;
};
};
if (saveSO){
save();
};
} else {
_OBJ = new Object();
if (data){
for (prop in data) {
_OBJ[prop] = data[prop];
};
};
};
_volatile = volatile;
}
public function clearCookies():void{
utma.reset();
utmb.reset();
utmc.reset();
utmz.reset();
utmv.reset();
utmk.reset();
}
public function save():void{
var flushStatus:String;
if (!isVolatile()){
flushStatus = null;
flushStatus = _SO.flush();
//unresolved jump
var _slot1 = e;
_debug.warning("Error...Could not write SharedObject to disk");
switch (flushStatus){
case SharedObjectFlushStatus.PENDING:
_debug.info("Requesting permission to save object...");
_SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
break;
case SharedObjectFlushStatus.FLUSHED:
_debug.info("Value flushed to disk.");
break;
};
};
}
public function get utmv():UTMV{
if (!hasUTMV()){
_createUMTV();
};
return (_utmv);
}
public function get utmz():UTMZ{
if (!hasUTMZ()){
_createUMTZ();
};
return (_utmz);
}
public function hasUTMA():Boolean{
if (_utma){
return (true);
};
return (false);
}
public function hasUTMB():Boolean{
if (_utmb){
return (true);
};
return (false);
}
public function hasUTMC():Boolean{
if (_utmc){
return (true);
};
return (false);
}
public function isGenuine():Boolean{
if (!hasUTMK()){
return (true);
};
return ((utmk.hash == generateCookiesHash()));
}
public function resetCurrentSession():void{
_clearUTMB();
_clearUTMC();
save();
}
public function hasUTMK():Boolean{
if (_utmk){
return (true);
};
return (false);
}
public function generateCookiesHash():Number{
var value:String = "";
value = (value + utma.valueOf());
value = (value + utmb.valueOf());
value = (value + utmc.valueOf());
value = (value + utmz.valueOf());
value = (value + utmv.valueOf());
return (Utils.generateHash(value));
}
private function _createUMTB():void{
_utmb = new UTMB();
_utmb.proxy = this;
}
private function _createUMTC():void{
_utmc = new UTMC();
}
private function _createUMTA():void{
_utma = new UTMA();
_utma.proxy = this;
}
public function hasUTMV():Boolean{
if (_utmv){
return (true);
};
return (false);
}
private function _createUMTK():void{
_utmk = new UTMK();
_utmk.proxy = this;
}
public function hasUTMZ():Boolean{
if (_utmz){
return (true);
};
return (false);
}
private function _createUMTV():void{
_utmv = new UTMV();
_utmv.proxy = this;
}
private function _onFlushStatus(event:NetStatusEvent):void{
_debug.info("User closed permission dialog...");
switch (event.info.code){
case "SharedObject.Flush.Success":
_debug.info("User granted permission -- value saved.");
break;
case "SharedObject.Flush.Failed":
_debug.info("User denied permission -- value not saved.");
break;
};
_SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
}
private function _createUMTZ():void{
_utmz = new UTMZ();
_utmz.proxy = this;
}
public function updateUTMA(timestamp:Number):void{
if (_debug.verbose){
_debug.info((("updateUTMA( " + timestamp) + " )"), VisualDebugMode.advanced);
};
if (!utma.isEmpty()){
if (isNaN(utma.sessionCount)){
utma.sessionCount = 1;
} else {
utma.sessionCount = (utma.sessionCount + 1);
};
utma.lastTime = utma.currentTime;
utma.currentTime = timestamp;
};
}
private function _clearUTMA():void{
_utma = null;
if (!isVolatile()){
_SO.data.utma = null;
delete _SO.data.utma;
};
}
private function _clearUTMC():void{
_utmc = null;
}
private function _clearUTMB():void{
_utmb = null;
if (!isVolatile()){
_SO.data.utmb = null;
delete _SO.data.utmb;
};
}
public function update(name:String, value):void{
if (isVolatile()){
_OBJ[name] = value;
} else {
_SO.data[name] = value;
};
}
private function _clearUTMZ():void{
_utmz = null;
if (!isVolatile()){
_SO.data.utmz = null;
delete _SO.data.utmz;
};
}
private function _clearUTMV():void{
_utmv = null;
if (!isVolatile()){
_SO.data.utmv = null;
delete _SO.data.utmv;
};
}
public function isVolatile():Boolean{
return (_volatile);
}
public function get utma():UTMA{
if (!hasUTMA()){
_createUMTA();
};
return (_utma);
}
public function get utmb():UTMB{
if (!hasUTMB()){
_createUMTB();
};
return (_utmb);
}
public function get utmc():UTMC{
if (!hasUTMC()){
_createUMTC();
};
return (_utmc);
}
public function get utmk():UTMK{
if (!hasUTMK()){
_createUMTK();
};
return (_utmk);
}
}
}//package com.google.analytics.core
Section 86
//DocumentInfo (com.google.analytics.core.DocumentInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
public class DocumentInfo {
private var _pageURL:String;
private var _utmr:String;
private var _config:Configuration;
private var _adSense:AdSenseGlobals;
private var _info:Environment;
public function DocumentInfo(config:Configuration, info:Environment, formatedReferrer:String, pageURL:String=null, adSense:AdSenseGlobals=null){
super();
_config = config;
_info = info;
_utmr = formatedReferrer;
_pageURL = pageURL;
_adSense = adSense;
}
public function get utmr():String{
if (!_utmr){
return ("-");
};
return (_utmr);
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
private function _renderPageURL(pageURL:String=""):String{
var pathname:String = _info.locationPath;
var search:String = _info.locationSearch;
if (((!(pageURL)) || ((pageURL == "")))){
pageURL = (pathname + unescape(search));
};
return (pageURL);
}
public function get utmp():String{
return (_renderPageURL(_pageURL));
}
public function get utmhid():String{
return (String(_generateHitId()));
}
private function _generateHitId():Number{
var hid:Number;
if (((_adSense.hid) && (!((_adSense.hid == ""))))){
hid = Number(_adSense.hid);
} else {
hid = Math.round((Math.random() * 2147483647));
_adSense.hid = String(hid);
};
return (hid);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (((_config.detectTitle) && (!((utmdt == ""))))){
variables.utmdt = utmdt;
};
variables.utmhid = utmhid;
variables.utmr = utmr;
variables.utmp = utmp;
return (variables);
}
public function get utmdt():String{
return (_info.documentTitle);
}
}
}//package com.google.analytics.core
Section 87
//Domain (com.google.analytics.core.Domain)
package com.google.analytics.core {
import com.google.analytics.debug.*;
public class Domain {
private var _mode:DomainNameMode;
private var _debug:DebugConfiguration;
private var _name:String;
public function Domain(mode:DomainNameMode=null, name:String="", debug:DebugConfiguration=null){
super();
_debug = debug;
if (mode == null){
mode = DomainNameMode.auto;
};
_mode = mode;
if (mode == DomainNameMode.custom){
this.name = name;
} else {
_name = name;
};
}
public function get mode():DomainNameMode{
return (_mode);
}
public function set mode(value:DomainNameMode):void{
_mode = value;
if (_mode == DomainNameMode.none){
_name = "";
};
}
public function get name():String{
return (_name);
}
public function set name(value:String):void{
if (((!((value.charAt(0) == "."))) && (_debug))){
_debug.warning(("missing leading period \".\", cookie will only be accessible on " + value), VisualDebugMode.geek);
};
_name = value;
}
}
}//package com.google.analytics.core
Section 88
//DomainNameMode (com.google.analytics.core.DomainNameMode)
package com.google.analytics.core {
public class DomainNameMode {
private var _value:int;
private var _name:String;
public static const custom:DomainNameMode = new DomainNameMode(2, "custom");
;
public static const none:DomainNameMode = new DomainNameMode(0, "none");
;
public static const auto:DomainNameMode = new DomainNameMode(1, "auto");
;
public function DomainNameMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 89
//EventInfo (com.google.analytics.core.EventInfo)
package com.google.analytics.core {
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
public class EventInfo {
private var _ext10:X10;
private var _isEventHit:Boolean;
private var _x10:X10;
public function EventInfo(isEventHit:Boolean, xObject:X10, extObject:X10=null){
super();
_isEventHit = isEventHit;
_x10 = xObject;
_ext10 = extObject;
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function get utmt():String{
return ("event");
}
public function get utme():String{
return (_x10.renderMergedUrlString(_ext10));
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (_isEventHit){
variables.utmt = utmt;
};
variables.utme = utme;
return (variables);
}
}
}//package com.google.analytics.core
Section 90
//EventTracker (com.google.analytics.core.EventTracker)
package com.google.analytics.core {
import com.google.analytics.v4.*;
public class EventTracker {
private var _parent:GoogleAnalyticsAPI;
public var name:String;
public function EventTracker(name:String, parent:GoogleAnalyticsAPI){
super();
this.name = name;
_parent = parent;
}
public function trackEvent(action:String, label:String=null, value:Number=NaN):Boolean{
return (_parent.trackEvent(name, action, label, value));
}
}
}//package com.google.analytics.core
Section 91
//ga_internal (com.google.analytics.core.ga_internal)
package com.google.analytics.core {
public namespace ga_internal;
}//package com.google.analytics.core
Section 92
//GIFRequest (com.google.analytics.core.GIFRequest)
package com.google.analytics.core {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import flash.system.*;
public class GIFRequest {
private var _info:Environment;
private var _count:int;
private var _utmac:String;
private var _alertcount:int;
private var _debug:DebugConfiguration;
private var _lastRequest:URLRequest;
private var _buffer:Buffer;
private var _config:Configuration;
private var _requests:Array;
public function GIFRequest(config:Configuration, debug:DebugConfiguration, buffer:Buffer, info:Environment){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_info = info;
_count = 0;
_alertcount = 0;
_requests = [];
}
public function get utmn():String{
return ((Utils.generate32bitRandom() as String));
}
public function onIOError(event:IOErrorEvent):void{
var url:String = _lastRequest.url;
var id:String = String((_requests.length - 1));
var msg = (("Gif Request #" + id) + " failed");
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" \"" + url) + "\" does not exists or is unreachable"));
};
_debug.failure(msg);
} else {
_debug.warning(msg);
};
_removeListeners(event.target);
}
public function send(account:String, variables:Variables=null, force:Boolean=false, rateLimit:Boolean=false):void{
var localPath:String;
var localImage:URLRequest;
var remoteImage:URLRequest;
_utmac = account;
if (!variables){
variables = new Variables();
};
variables.URIencode = false;
variables.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"];
variables.post = ["utmcc"];
if (_debug.verbose){
_debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek);
};
if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (force))){
if (rateLimit){
updateToken();
};
if (((((force) || (!(rateLimit)))) || ((_buffer.utmb.token >= 1)))){
if (((!(force)) && (rateLimit))){
_buffer.utmb.token = (_buffer.utmb.token - 1);
};
_buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1);
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
variables.utmwv = utmwv;
variables.utmn = Utils.generate32bitRandom();
if (_info.domainName != ""){
variables.utmhn = _info.domainName;
};
if (_config.sampleRate < 1){
variables.utmsp = (_config.sampleRate * 100);
};
if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){
localPath = _info.locationSWFPath;
if (localPath.lastIndexOf("/") > 0){
localPath = localPath.substring(0, localPath.lastIndexOf("/"));
};
localImage = new URLRequest();
if (_config.localGIFpath.indexOf("http") == 0){
localImage.url = _config.localGIFpath;
} else {
localImage.url = (localPath + _config.localGIFpath);
};
localImage.url = (localImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(localImage);
} else {
sendRequest(localImage);
};
};
if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){
remoteImage = new URLRequest();
if (_info.protocol == Protocols.HTTPS){
remoteImage.url = _config.secureRemoteGIFpath;
} else {
if (_info.protocol == Protocols.HTTP){
remoteImage.url = _config.remoteGIFpath;
} else {
remoteImage.url = _config.remoteGIFpath;
};
};
variables.utmac = utmac;
variables.utmcc = encodeURIComponent(utmcc);
remoteImage.url = (remoteImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(remoteImage);
} else {
sendRequest(remoteImage);
};
};
};
};
}
public function onSecurityError(event:SecurityErrorEvent):void{
if (_debug.GIFRequests){
_debug.failure(event.text);
};
}
public function get utmsp():String{
return (((_config.sampleRate * 100) as String));
}
public function get utmcc():String{
var cookies:Array = [];
if (_buffer.hasUTMA()){
cookies.push((_buffer.utma.toURLString() + ";"));
};
if (_buffer.hasUTMZ()){
cookies.push((_buffer.utmz.toURLString() + ";"));
};
if (_buffer.hasUTMV()){
cookies.push((_buffer.utmv.toURLString() + ";"));
};
return (cookies.join("+"));
}
public function get utmac():String{
return (_utmac);
}
public function get utmwv():String{
return (_config.version);
}
public function sendRequest(request:URLRequest):void{
var request = request;
var loader:Loader = new Loader();
loader.name = String(_count++);
var context:LoaderContext = new LoaderContext(false);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_lastRequest = request;
_requests[loader.name] = new RequestObject(request);
loader.load(request, context);
//unresolved jump
var _slot1 = e;
_debug.failure("\"Loader.load()\" could not instanciate Gif Request");
}
private function _removeListeners(target:Object):void{
target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
target.removeEventListener(Event.COMPLETE, onComplete);
}
public function updateToken():void{
var tokenDelta:Number;
var timestamp:Number = new Date().getTime();
tokenDelta = ((timestamp - _buffer.utmb.lastTime) * (_config.tokenRate / 1000));
if (_debug.verbose){
_debug.info(("tokenDelta: " + tokenDelta), VisualDebugMode.geek);
};
if (tokenDelta >= 1){
_buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + tokenDelta)), _config.bucketCapacity);
_buffer.utmb.lastTime = timestamp;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
};
}
public function get utmhn():String{
return (_info.domainName);
}
private function _shortenURL(url:String):String{
var paths:Array;
if (url.length > 60){
paths = url.split("/");
while (url.length > 60) {
paths.shift();
url = ("../" + paths.join("/"));
};
};
return (url);
}
private function _debugSend(request:URLRequest):void{
var _local3:String;
var data:String = "";
switch (_debug.mode){
case VisualDebugMode.geek:
data = ((("Gif Request #" + _alertcount) + ":\n") + request.url);
break;
case VisualDebugMode.advanced:
_local3 = request.url;
if (_local3.indexOf("?") > -1){
_local3 = _local3.split("?")[0];
};
_local3 = _shortenURL(_local3);
data = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?");
break;
case VisualDebugMode.basic:
default:
data = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?");
};
_debug.alertGifRequest(data, request, this);
_alertcount++;
}
public function onComplete(event:Event):void{
var id:String = event.target.loader.name;
_requests[id].complete();
var msg = (("Gif Request #" + id) + " sent");
var url:String = _requests[id].request.url;
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" to \"" + url) + "\""));
};
_debug.success(msg);
} else {
_debug.info(msg);
};
_removeListeners(event.target);
}
}
}//package com.google.analytics.core
Section 93
//IdleTimer (com.google.analytics.core.IdleTimer)
package com.google.analytics.core {
import flash.display.*;
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.utils.*;
public class IdleTimer {
private var _stage:Stage;
private var _loop:Timer;
private var _lastMove:int;
private var _inactivity:Number;
private var _debug:DebugConfiguration;
private var _session:Timer;
private var _buffer:Buffer;
public function IdleTimer(config:Configuration, debug:DebugConfiguration, display:DisplayObject, buffer:Buffer){
super();
var delay:Number = config.idleLoop;
var inactivity:Number = config.idleTimeout;
var sessionTimeout:Number = config.sessionTimeout;
_loop = new Timer((delay * 1000));
_session = new Timer((sessionTimeout * 1000), 1);
_debug = debug;
_stage = display.stage;
_buffer = buffer;
_lastMove = getTimer();
_inactivity = (inactivity * 1000);
_loop.addEventListener(TimerEvent.TIMER, checkForIdle);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_debug.info(((((("delay: " + delay) + "sec , inactivity: ") + inactivity) + "sec, sessionTimeout: ") + sessionTimeout), VisualDebugMode.geek);
_loop.start();
}
private function onMouseMove(event:MouseEvent):void{
_lastMove = getTimer();
if (_session.running){
_debug.info("session timer reset", VisualDebugMode.geek);
_session.reset();
};
}
public function endSession(event:TimerEvent):void{
_session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_debug.info("session timer end session", VisualDebugMode.geek);
_session.reset();
_buffer.resetCurrentSession();
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.geek);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
}
public function checkForIdle(event:TimerEvent):void{
var current:int = getTimer();
if ((current - _lastMove) >= _inactivity){
if (!_session.running){
_debug.info("session timer start", VisualDebugMode.geek);
_session.start();
};
};
}
}
}//package com.google.analytics.core
Section 94
//Organic (com.google.analytics.core.Organic)
package com.google.analytics.core {
import com.google.analytics.utils.*;
public class Organic {
private var _sourcesCache:Array;
private var _sourcesEngine:Array;
private var _ignoredKeywords:Array;
private var _ignoredReferralsCache:Object;
private var _ignoredReferrals:Array;
private var _ignoredKeywordsCache:Object;
private var _sources:Array;
public static var throwErrors:Boolean = false;
public function Organic(){
super();
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
_ignoredReferrals = [];
_ignoredReferralsCache = {};
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function isIgnoredKeyword(keyword:String):Boolean{
if (_ignoredKeywordsCache.hasOwnProperty(keyword)){
return (true);
};
return (false);
}
public function getKeywordValue(or:OrganicReferrer, path:String):String{
var keyword:String = or.keyword;
return (getKeywordValueFromPath(keyword, path));
}
public function isIgnoredReferral(referrer:String):Boolean{
if (_ignoredReferralsCache.hasOwnProperty(referrer)){
return (true);
};
return (false);
}
public function clear():void{
clearEngines();
clearIgnoredReferrals();
clearIgnoredKeywords();
}
public function get count():int{
return (_sources.length);
}
public function get ignoredKeywordsCount():int{
return (_ignoredKeywords.length);
}
public function match(name:String):Boolean{
if (name == ""){
return (false);
};
name = name.toLowerCase();
if (_sourcesEngine[name] != undefined){
return (true);
};
return (false);
}
public function clearIgnoredKeywords():void{
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function addSource(engine:String, keyword:String):void{
var orgref:OrganicReferrer = new OrganicReferrer(engine, keyword);
if (_sourcesCache[orgref.toString()] == undefined){
_sources.push(orgref);
_sourcesCache[orgref.toString()] = (_sources.length - 1);
if (_sourcesEngine[orgref.engine] == undefined){
_sourcesEngine[orgref.engine] = [(_sources.length - 1)];
} else {
_sourcesEngine[orgref.engine].push((_sources.length - 1));
};
} else {
if (throwErrors){
throw (new Error((orgref.toString() + " already exists, we don't add it.")));
};
};
}
public function clearEngines():void{
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
}
public function get ignoredReferralsCount():int{
return (_ignoredReferrals.length);
}
public function addIgnoredReferral(referrer:String):void{
if (_ignoredReferralsCache[referrer] == undefined){
_ignoredReferrals.push(referrer);
_ignoredReferralsCache[referrer] = (_ignoredReferrals.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + referrer) + "\" already exists, we don't add it.")));
};
};
}
public function clearIgnoredReferrals():void{
_ignoredReferrals = [];
_ignoredReferralsCache = {};
}
public function getReferrerByName(name:String):OrganicReferrer{
var index:int;
if (match(name)){
index = _sourcesEngine[name][0];
return (_sources[index]);
};
return (null);
}
public function addIgnoredKeyword(keyword:String):void{
if (_ignoredKeywordsCache[keyword] == undefined){
_ignoredKeywords.push(keyword);
_ignoredKeywordsCache[keyword] = (_ignoredKeywords.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + keyword) + "\" already exists, we don't add it.")));
};
};
}
public function get sources():Array{
return (_sources);
}
public static function getKeywordValueFromPath(keyword:String, path:String):String{
var value:String;
var vars:Variables;
if (path.indexOf((keyword + "=")) > -1){
if (path.charAt(0) == "?"){
path = path.substr(1);
};
path = path.split("+").join("%20");
vars = new Variables(path);
value = vars[keyword];
};
return (value);
}
}
}//package com.google.analytics.core
Section 95
//OrganicReferrer (com.google.analytics.core.OrganicReferrer)
package com.google.analytics.core {
public class OrganicReferrer {
private var _engine:String;
private var _keyword:String;
public function OrganicReferrer(engine:String, keyword:String){
super();
this.engine = engine;
this.keyword = keyword;
}
public function get keyword():String{
return (_keyword);
}
public function get engine():String{
return (_engine);
}
public function set engine(value:String):void{
_engine = value.toLowerCase();
}
public function toString():String{
return (((engine + "?") + keyword));
}
public function set keyword(value:String):void{
_keyword = value.toLowerCase();
}
}
}//package com.google.analytics.core
Section 96
//RequestObject (com.google.analytics.core.RequestObject)
package com.google.analytics.core {
import flash.net.*;
import flash.utils.*;
public class RequestObject {
public var start:int;
public var end:int;
public var request:URLRequest;
public function RequestObject(request:URLRequest){
super();
start = getTimer();
this.request = request;
}
public function hasCompleted():Boolean{
return ((end > 0));
}
public function toString():String{
var data:Array = [];
data.push((("duration: " + duration) + "ms"));
data.push(("url: " + request.url));
return ((("{ " + data.join(", ")) + " }"));
}
public function complete():void{
end = getTimer();
}
public function get duration():int{
if (!hasCompleted()){
return (0);
};
return ((end - start));
}
}
}//package com.google.analytics.core
Section 97
//ServerOperationMode (com.google.analytics.core.ServerOperationMode)
package com.google.analytics.core {
public class ServerOperationMode {
private var _value:int;
private var _name:String;
public static const both:ServerOperationMode = new ServerOperationMode(2, "both");
;
public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote");
;
public static const local:ServerOperationMode = new ServerOperationMode(0, "local");
;
public function ServerOperationMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 98
//TrackerCache (com.google.analytics.core.TrackerCache)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import flash.errors.*;
public class TrackerCache implements GoogleAnalyticsAPI {
public var tracker:GoogleAnalyticsAPI;
private var _ar:Array;
public static var CACHE_THROW_ERROR:Boolean;
public function TrackerCache(tracker:GoogleAnalyticsAPI=null){
super();
this.tracker = tracker;
_ar = [];
}
public function size():uint{
return (_ar.length);
}
public function flush():void{
var o:Object;
var name:String;
var args:Array;
var l:int;
var i:int;
if (tracker == null){
return;
};
if (size() > 0){
l = _ar.length;
while (i < l) {
o = _ar.shift();
name = (o.name as String);
args = (o.args as Array);
if (((!((name == null))) && ((name in tracker)))){
(tracker[name] as Function).apply(tracker, args);
};
i++;
};
};
}
public function enqueue(name:String, ... _args):Boolean{
if (name == null){
return (false);
};
_ar.push({name:name, args:_args});
return (true);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
enqueue("link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
enqueue("addOrganic", newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
enqueue("setAllowLinker", enable);
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
enqueue("trackEvent", category, action, label, value);
return (true);
}
public function getClientInfo():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment."));
};
return (false);
}
public function trackTrans():void{
enqueue("trackTrans");
}
public function trackPageview(pageURL:String=""):void{
enqueue("trackPageview", pageURL);
}
public function setClientInfo(enable:Boolean):void{
enqueue("setClientInfo", enable);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
enqueue("linkByPost", formObject, useHash);
}
public function setCookieTimeout(newDefaultTimeout:int):void{
enqueue("setCookieTimeout", newDefaultTimeout);
}
public function isEmpty():Boolean{
return ((_ar.length == 0));
}
public function getDetectTitle():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment."));
};
return (false);
}
public function resetSession():void{
enqueue("resetSession");
}
public function setDetectFlash(enable:Boolean):void{
enqueue("setDetectFlash", enable);
}
public function clear():void{
_ar = [];
}
public function setCampNameKey(newCampNameKey:String):void{
enqueue("setCampNameKey", newCampNameKey);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
enqueue("addItem", item, sku, name, category, price, quantity);
}
public function createEventTracker(objName:String):EventTracker{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment."));
};
return (null);
}
public function setVar(newVal:String):void{
enqueue("setVar", newVal);
}
public function clearIgnoredOrganic():void{
enqueue("clearIgnoredOrganic");
}
public function setDomainName(newDomainName:String):void{
enqueue("setDomainName", newDomainName);
}
public function setCampSourceKey(newCampSrcKey:String):void{
enqueue("setCampSourceKey", newCampSrcKey);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):Object{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment."));
};
return (null);
}
public function setCampContentKey(newCampContentKey:String):void{
enqueue("setCampContentKey", newCampContentKey);
}
public function setLocalServerMode():void{
enqueue("setLocalServerMode");
}
public function getLocalGifPath():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment."));
};
return ("");
}
public function setAllowAnchor(enable:Boolean):void{
enqueue("setAllowAnchor", enable);
}
public function clearIgnoredRef():void{
enqueue("clearIgnoredRef");
}
public function setLocalGifPath(newLocalGifPath:String):void{
enqueue("setLocalGifPath", newLocalGifPath);
}
public function getVersion():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment."));
};
return ("");
}
public function setCookiePath(newCookiePath:String):void{
enqueue("setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
enqueue("setSampleRate", newRate);
}
public function setDetectTitle(enable:Boolean):void{
enqueue("setDetectTitle", enable);
}
public function setAllowHash(enable:Boolean):void{
enqueue("setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
enqueue("addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
enqueue("setCampNOKey", newCampNOKey);
}
public function getServiceMode():ServerOperationMode{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment."));
};
return (null);
}
public function setLocalRemoteServerMode():void{
enqueue("setLocalRemoteServerMode");
}
public function cookiePathCopy(newPath:String):void{
enqueue("cookiePathCopy", newPath);
}
public function getDetectFlash():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment."));
};
return (false);
}
public function setCampaignTrack(enable:Boolean):void{
enqueue("setCampaignTrack", enable);
}
public function clearOrganic():void{
enqueue("clearOrganic");
}
public function setCampTermKey(newCampTermKey:String):void{
enqueue("setCampTermKey", newCampTermKey);
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
enqueue("addIgnoredRef", newIgnoredReferrer);
}
public function setCampMediumKey(newCampMedKey:String):void{
enqueue("setCampMediumKey", newCampMedKey);
}
public function setSessionTimeout(newTimeout:int):void{
enqueue("setSessionTimeout", newTimeout);
}
public function setRemoteServerMode():void{
enqueue("setRemoteServerMode");
}
public function element(){
return (_ar[0]);
}
public function getAccount():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment."));
};
return ("");
}
}
}//package com.google.analytics.core
Section 99
//TrackerMode (com.google.analytics.core.TrackerMode)
package com.google.analytics.core {
public class TrackerMode {
public static const BRIDGE:String = "Bridge";
public static const AS3:String = "AS3";
public function TrackerMode(){
super();
}
}
}//package com.google.analytics.core
Section 100
//Utils (com.google.analytics.core.Utils)
package com.google.analytics.core {
public class Utils {
public function Utils(){
super();
}
public static function trim(raw:String, everything:Boolean=false):String{
var i:int;
var iLeft:int;
var iRight:int;
if (raw == ""){
return ("");
};
var whitespaces:Array = [" ", "\n", "\r", "\t"];
var str:String = raw;
if (everything){
i = 0;
while ((((i < whitespaces.length)) && ((str.indexOf(whitespaces[i]) > -1)))) {
str = str.split(whitespaces[i]).join("");
i++;
};
} else {
iLeft = 0;
while ((((iLeft < str.length)) && ((whitespaces.indexOf(str.charAt(iLeft)) > -1)))) {
iLeft++;
};
str = str.substr(iLeft);
iRight = (str.length - 1);
while ((((iRight >= 0)) && ((whitespaces.indexOf(str.charAt(iRight)) > -1)))) {
iRight--;
};
str = str.substring(0, (iRight + 1));
};
return (str);
}
public static function generateHash(input:String):int{
var pos:int;
var current:int;
var hash = 1;
var leftMost7:int;
if (((!((input == null))) && (!((input == ""))))){
hash = 0;
pos = (input.length - 1);
while (pos >= 0) {
current = input.charCodeAt(pos);
hash = ((((hash << 6) & 268435455) + current) + (current << 14));
leftMost7 = (hash & 266338304);
if (leftMost7 != 0){
hash = (hash ^ (leftMost7 >> 21));
};
pos--;
};
};
return (hash);
}
public static function generate32bitRandom():int{
return (Math.round((Math.random() * 2147483647)));
}
public static function validateAccount(account:String):Boolean{
var rel:RegExp = /^UA-[0-9]*-[0-9]*$/;
return (rel.test(account));
}
}
}//package com.google.analytics.core
Section 101
//Cookie (com.google.analytics.data.Cookie)
package com.google.analytics.data {
public interface Cookie {
function fromSharedObject(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/data;Cookie.as:Object):void;
function toURLString():String;
function get creation():Date;
function toSharedObject():Object;
function isExpired():Boolean;
function set creation(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/data;Cookie.as:Date):void;
function set expiration(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/data;Cookie.as:Date):void;
function get expiration():Date;
}
}//package com.google.analytics.data
Section 102
//UTMA (com.google.analytics.data.UTMA)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMA extends UTMCookie {
private var _sessionId:Number;
private var _domainHash:Number;
private var _firstTime:Number;
private var _currentTime:Number;
private var _lastTime:Number;
private var _sessionCount:Number;
public function UTMA(domainHash:Number=NaN, sessionId:Number=NaN, firstTime:Number=NaN, lastTime:Number=NaN, currentTime:Number=NaN, sessionCount:Number=NaN){
super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.sessionId = sessionId;
this.firstTime = firstTime;
this.lastTime = lastTime;
this.currentTime = currentTime;
this.sessionCount = sessionCount;
}
public function get lastTime():Number{
return (_lastTime);
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function set currentTime(value:Number):void{
_currentTime = value;
update();
}
public function get sessionId():Number{
return (_sessionId);
}
public function get sessionCount():Number{
return (_sessionCount);
}
public function get firstTime():Number{
return (_firstTime);
}
public function get currentTime():Number{
return (_currentTime);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set sessionId(value:Number):void{
_sessionId = value;
update();
}
public function set sessionCount(value:Number):void{
_sessionCount = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set firstTime(value:Number):void{
_firstTime = value;
update();
}
}
}//package com.google.analytics.data
Section 103
//UTMB (com.google.analytics.data.UTMB)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMB extends UTMCookie {
private var _trackCount:Number;
private var _lastTime:Number;
private var _domainHash:Number;
private var _token:Number;
public static var defaultTimespan:Number = Timespan.thirtyminutes;
public function UTMB(domainHash:Number=NaN, trackCount:Number=NaN, token:Number=NaN, lastTime:Number=NaN){
super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.trackCount = trackCount;
this.token = token;
this.lastTime = lastTime;
}
public function set token(value:Number):void{
_token = value;
update();
}
public function set trackCount(value:Number):void{
_trackCount = value;
update();
}
public function get lastTime():Number{
return (_lastTime);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function get token():Number{
return (_token);
}
public function get trackCount():Number{
return (_trackCount);
}
}
}//package com.google.analytics.data
Section 104
//UTMC (com.google.analytics.data.UTMC)
package com.google.analytics.data {
public class UTMC extends UTMCookie {
private var _domainHash:Number;
public function UTMC(domainHash:Number=NaN){
super("utmc", "__utmc", ["domainHash"]);
this.domainHash = domainHash;
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
}
}//package com.google.analytics.data
Section 105
//UTMCookie (com.google.analytics.data.UTMCookie)
package com.google.analytics.data {
import com.google.analytics.core.*;
public class UTMCookie implements Cookie {
protected var inURL:String;
protected var name:String;
private var _creation:Date;
private var _expiration:Date;
public var proxy:Buffer;
protected var fields:Array;
private var _timespan:Number;
public function UTMCookie(name:String, inURL:String, fields:Array, timespan:Number=0){
super();
this.name = name;
this.inURL = inURL;
this.fields = fields;
_timestamp(timespan);
}
public function isEmpty():Boolean{
var field:String;
var empty:int;
var i:int;
while (i < fields.length) {
field = fields[i];
if ((((this[field] is Number)) && (isNaN(this[field])))){
empty++;
} else {
if ((((this[field] is String)) && ((this[field] == "")))){
empty++;
};
};
i++;
};
if (empty == fields.length){
return (true);
};
return (false);
}
public function resetTimestamp(timespan:Number=NaN):void{
if (!isNaN(timespan)){
_timespan = timespan;
};
_creation = null;
_expiration = null;
_timestamp(_timespan);
}
protected function update():void{
resetTimestamp();
if (proxy){
proxy.update(name, toSharedObject());
};
}
public function reset():void{
var field:String;
var i:int;
while (i < fields.length) {
field = fields[i];
if ((this[field] is Number)){
this[field] = NaN;
} else {
if ((this[field] is String)){
this[field] = "";
};
};
i++;
};
resetTimestamp();
update();
}
public function fromSharedObject(data:Object):void{
var field:String;
var len:int = fields.length;
var i:int;
while (i < len) {
field = fields[i];
if (data[field]){
this[field] = data[field];
};
i++;
};
if (data.creation){
this.creation = data.creation;
};
if (data.expiration){
this.expiration = data.expiration;
};
}
private function _timestamp(timespan:Number):void{
creation = new Date();
_timespan = timespan;
if (timespan > 0){
expiration = new Date((creation.valueOf() + timespan));
};
}
public function isExpired():Boolean{
var current:Date = new Date();
var diff:Number = (expiration.valueOf() - current.valueOf());
if (diff <= 0){
return (true);
};
return (false);
}
public function set expiration(value:Date):void{
_expiration = value;
}
public function get creation():Date{
return (_creation);
}
public function valueOf():String{
var field:String;
var value:*;
var data:Array = [];
var i:int;
while (i < fields.length) {
field = fields[i];
value = this[field];
if ((value is String)){
if (value == ""){
value = "-";
data.push(value);
} else {
data.push(value);
};
} else {
if ((value is Number)){
if (value == 0){
data.push(value);
} else {
if (isNaN(value)){
value = "-";
data.push(value);
} else {
data.push(value);
};
};
};
};
i++;
};
return (("" + data.join(".")));
}
public function toURLString():String{
return (((inURL + "=") + valueOf()));
}
public function get expiration():Date{
if (_expiration){
return (_expiration);
};
return (new Date((new Date().valueOf() + 1000)));
}
public function toSharedObject():Object{
var field:String;
var value:*;
var data:Object = {};
var i:int;
for (;i < fields.length;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data[field] = value;
} else {
if (value == 0){
data[field] = value;
} else {
if (isNaN(value)){
continue;
} else {
data[field] = value;
};
};
};
};
data.creation = creation;
data.expiration = expiration;
return (data);
}
public function toString(showTimestamp:Boolean=false):String{
var field:String;
var value:*;
var data:Array = [];
var len:int = fields.length;
var i:int;
for (;i < len;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data.push((((field + ": \"") + value) + "\""));
} else {
if (value == 0){
data.push(((field + ": ") + value));
} else {
if (isNaN(value)){
continue;
} else {
data.push(((field + ": ") + value));
};
};
};
};
var str = (((name.toUpperCase() + " {") + data.join(", ")) + "}");
if (showTimestamp){
str = (str + (((" creation:" + creation) + ", expiration:") + expiration));
};
return (str);
}
public function set creation(value:Date):void{
_creation = value;
}
}
}//package com.google.analytics.data
Section 106
//UTMK (com.google.analytics.data.UTMK)
package com.google.analytics.data {
public class UTMK extends UTMCookie {
private var _hash:Number;
public function UTMK(hash:Number=NaN){
super("utmk", "__utmk", ["hash"]);
this.hash = hash;
}
public function set hash(value:Number):void{
_hash = value;
update();
}
public function get hash():Number{
return (_hash);
}
}
}//package com.google.analytics.data
Section 107
//UTMV (com.google.analytics.data.UTMV)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMV extends UTMCookie {
private var _domainHash:Number;
private var _value:String;
public function UTMV(domainHash:Number=NaN, value:String=""){
super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.value = value;
}
override public function toURLString():String{
return (((inURL + "=") + encodeURI(valueOf())));
}
public function get value():String{
return (_value);
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set value(value:String):void{
_value = value;
update();
}
}
}//package com.google.analytics.data
Section 108
//UTMZ (com.google.analytics.data.UTMZ)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMZ extends UTMCookie {
private var _campaignTracking:String;
private var _campaignCreation:Number;
private var _responseCount:Number;
private var _domainHash:Number;
private var _campaignSessions:Number;
public static var defaultTimespan:Number = Timespan.sixmonths;
public function UTMZ(domainHash:Number=NaN, campaignCreation:Number=NaN, campaignSessions:Number=NaN, responseCount:Number=NaN, campaignTracking:String=""){
super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.campaignCreation = campaignCreation;
this.campaignSessions = campaignSessions;
this.responseCount = responseCount;
this.campaignTracking = campaignTracking;
}
public function set responseCount(value:Number):void{
_responseCount = value;
update();
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set campaignCreation(value:Number):void{
_campaignCreation = value;
update();
}
public function get campaignTracking():String{
return (_campaignTracking);
}
public function get campaignSessions():Number{
return (_campaignSessions);
}
public function get domainHash():Number{
return (_domainHash);
}
public function get responseCount():Number{
return (_responseCount);
}
public function get campaignCreation():Number{
return (_campaignCreation);
}
public function set campaignSessions(value:Number):void{
_campaignSessions = value;
update();
}
public function set campaignTracking(value:String):void{
_campaignTracking = value;
update();
}
}
}//package com.google.analytics.data
Section 109
//X10 (com.google.analytics.data.X10)
package com.google.analytics.data {
public class X10 {
private var _delimEnd:String;// = ")"
private var _minimum:int;
private var _delimSet:String;// = "*"
private var _escapeChar:String;// = "'"
private var _delimBegin:String;// = "("
private var _delimNumValue:String;// = "!"
private var _key:String;// = "k"
private var _set:Array;
private var _hasData:int;
private var _escapeCharMap:Object;
private var _projectData:Object;
private var _value:String;// = "v"
public function X10(){
_set = [_key, _value];
super();
_projectData = {};
_escapeCharMap = {};
_escapeCharMap[_escapeChar] = "'0";
_escapeCharMap[_delimEnd] = "'1";
_escapeCharMap[_delimSet] = "'2";
_escapeCharMap[_delimNumValue] = "'3";
_minimum = 1;
}
private function _setInternal(projectId:Number, type:String, num:Number, value:String):void{
if (!hasProject(projectId)){
_projectData[projectId] = {};
};
if (_projectData[projectId][type] == undefined){
_projectData[projectId][type] = [];
};
_projectData[projectId][type][num] = value;
_hasData = (_hasData + 1);
}
private function _renderProject(project:Object):String{
var i:int;
var data:Array;
var result:String = "";
var needTypeQualifier:Boolean;
var l:int = _set.length;
i = 0;
while (i < l) {
data = project[_set[i]];
if (data){
if (needTypeQualifier){
result = (result + _set[i]);
};
result = (result + _renderDataType(data));
needTypeQualifier = false;
} else {
needTypeQualifier = true;
};
i++;
};
return (result);
}
public function hasProject(projectId:Number):Boolean{
return (_projectData[projectId]);
}
public function clearKey(projectId:Number):void{
_clearInternal(projectId, _key);
}
private function _renderDataType(data:Array):String{
var str:String;
var i:int;
var result:Array = [];
i = 0;
while (i < data.length) {
if (data[i] != undefined){
str = "";
if (((!((i == _minimum))) && ((data[(i - 1)] == undefined)))){
str = (str + i.toString());
str = (str + _delimNumValue);
};
str = (str + _escapeExtensibleValue(data[i]));
result.push(str);
};
i++;
};
return (((_delimBegin + result.join(_delimSet)) + _delimEnd));
}
public function getKey(projectId:Number, num:Number):String{
return ((_getInternal(projectId, _key, num) as String));
}
public function hasData():Boolean{
return ((_hasData > 0));
}
public function renderMergedUrlString(extObject:X10=null):String{
var projectId:String;
if (!extObject){
return (renderUrlString());
};
var result:Array = [extObject.renderUrlString()];
for (projectId in _projectData) {
if (((hasProject(Number(projectId))) && (!(extObject.hasProject(Number(projectId)))))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
public function setValue(projectId:Number, num:Number, value:Number):Boolean{
if (((((!((Math.round(value) == value))) || (isNaN(value)))) || ((value == Infinity)))){
return (false);
};
_setInternal(projectId, _value, num, value.toString());
return (true);
}
public function renderUrlString():String{
var projectId:String;
var result:Array = [];
for (projectId in _projectData) {
if (hasProject(Number(projectId))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
private function _getInternal(projectId:Number, type:String, num:Number):Object{
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
return (_projectData[projectId][type][num]);
};
return (undefined);
}
public function setKey(projectId:Number, num:Number, value:String):Boolean{
_setInternal(projectId, _key, num, value);
return (true);
}
public function clearValue(projectId:Number):void{
_clearInternal(projectId, _value);
}
private function _clearInternal(projectId:Number, type:String):void{
var isEmpty:Boolean;
var i:int;
var l:int;
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
_projectData[projectId][type] = undefined;
isEmpty = true;
l = _set.length;
i = 0;
while (i < l) {
if (_projectData[projectId][_set[i]] != undefined){
isEmpty = false;
break;
};
i++;
};
if (isEmpty){
_projectData[projectId] = undefined;
_hasData = (_hasData - 1);
};
};
}
public function getValue(projectId:Number, num:Number){
var value:* = _getInternal(projectId, _value, num);
if (value == null){
return (null);
};
return (Number(value));
}
private function _escapeExtensibleValue(value:String):String{
var i:int;
var c:String;
var escaped:String;
var result:String = "";
i = 0;
while (i < value.length) {
c = value.charAt(i);
escaped = _escapeCharMap[c];
if (escaped){
result = (result + escaped);
} else {
result = (result + c);
};
i++;
};
return (result);
}
}
}//package com.google.analytics.data
Section 110
//_Style (com.google.analytics.debug._Style)
package com.google.analytics.debug {
import flash.net.*;
import flash.text.*;
public class _Style {
public var failureColor:uint;
public var borderColor:uint;
public var backgroundColor:uint;
private var _sheet:StyleSheet;
public var roundedCorner:uint;
public var warningColor:uint;
public var infoColor:uint;
public var alertColor:uint;
public var successColor:uint;
private var _loader:URLLoader;
private var _defaultSheet:String;
public function _Style(){
super();
_sheet = new StyleSheet();
_loader = new URLLoader();
_init();
}
private function _parseSheet(data:String):void{
_sheet.parseCSS(data);
}
public function get sheet():StyleSheet{
return (_sheet);
}
private function _init():void{
_defaultSheet = "";
_defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n");
_defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n");
_defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + "\n");
roundedCorner = 6;
backgroundColor = 0xCCCCCC;
borderColor = 0x555555;
infoColor = 16777113;
alertColor = 0xFFCC00;
warningColor = 0xCC0000;
successColor = 0xFF00;
failureColor = 0xFF0000;
_parseSheet(_defaultSheet);
}
}
}//package com.google.analytics.debug
Section 111
//Alert (com.google.analytics.debug.Alert)
package com.google.analytics.debug {
import flash.events.*;
public class Alert extends Label {
public var autoClose:Boolean;// = true
public var actionOnNextLine:Boolean;// = true
private var _actions:Array;
public function Alert(text:String, actions:Array, tag:String="uiAlert", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false, actionOnNextLine:Boolean=true){
if (color == 0){
color = Style.alertColor;
};
if (alignement == null){
alignement = Align.center;
};
super(text, tag, color, alignement, stickToEdge);
this.selectable = true;
super.mouseChildren = true;
this.buttonMode = true;
this.mouseEnabled = true;
this.useHandCursor = true;
this.actionOnNextLine = actionOnNextLine;
_actions = [];
var i:int;
while (i < actions.length) {
actions[i].container = this;
_actions.push(actions[i]);
i++;
};
}
private function _defineActions():void{
var action:AlertAction;
var str:String = "";
if (actionOnNextLine){
str = (str + "\n");
} else {
str = (str + " |");
};
str = (str + " ");
var actions:Array = [];
var i:int;
while (i < _actions.length) {
action = _actions[i];
actions.push((((("<a href=\"event:" + action.activator) + "\">") + action.name) + "</a>"));
i++;
};
str = (str + actions.join(" | "));
appendText(str, "uiAlertAction");
}
protected function isValidAction(action:String):Boolean{
var i:int;
while (i < _actions.length) {
if (action == _actions[i].activator){
return (true);
};
i++;
};
return (false);
}
override protected function layout():void{
super.layout();
_defineActions();
}
protected function getAction(name:String):AlertAction{
var i:int;
while (i < _actions.length) {
if (name == _actions[i].activator){
return (_actions[i]);
};
i++;
};
return (null);
}
protected function spaces(num:int):String{
var str:String = "";
var spc:String = " ";
var i:int;
while (i < (num + 1)) {
str = (str + spc);
i++;
};
return (str);
}
override public function onLink(event:TextEvent):void{
var action:AlertAction;
if (isValidAction(event.text)){
action = getAction(event.text);
if (action){
action.execute();
};
};
if (autoClose){
close();
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 112
//AlertAction (com.google.analytics.debug.AlertAction)
package com.google.analytics.debug {
public class AlertAction {
public var container:Alert;
private var _callback;
public var activator:String;
public var name:String;
public function AlertAction(name:String, activator:String, callback){
super();
this.name = name;
this.activator = activator;
_callback = callback;
}
public function execute():void{
if (_callback){
if ((_callback is Function)){
(_callback as Function)();
} else {
if ((_callback is String)){
var _local1 = container;
_local1[_callback]();
};
};
};
}
}
}//package com.google.analytics.debug
Section 113
//Align (com.google.analytics.debug.Align)
package com.google.analytics.debug {
public class Align {
private var _value:int;
private var _name:String;
public static const bottomRight:Align = new Align(18, "bottomRight");
;
public static const right:Align = new Align(16, "right");
;
public static const left:Align = new Align(32, "left");
;
public static const topRight:Align = new Align(17, "topRight");
;
public static const bottom:Align = new Align(2, "bottom");
;
public static const bottomLeft:Align = new Align(34, "bottomLeft");
;
public static const topLeft:Align = new Align(33, "topLeft");
;
public static const center:Align = new Align(0x0100, "center");
;
public static const none:Align = new Align(0, "none");
;
public static const top:Align = new Align(1, "top");
;
public function Align(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 114
//Background (com.google.analytics.debug.Background)
package com.google.analytics.debug {
import flash.display.*;
public class Background {
public function Background(){
super();
}
public static function drawRounded(target, g:Graphics, width:uint=0, height:uint=0):void{
var W:uint;
var H:uint;
var R:uint = Style.roundedCorner;
if ((((width > 0)) && ((height > 0)))){
W = width;
H = height;
} else {
W = target.width;
H = target.height;
};
if (((target.stickToEdge) && (!((target.alignement == Align.none))))){
switch (target.alignement){
case Align.top:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, R);
break;
case Align.topLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, 0, R);
break;
case Align.topRight:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, 0);
break;
case Align.bottom:
g.drawRoundRectComplex(0, 0, W, H, R, R, 0, 0);
break;
case Align.bottomLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, 0);
break;
case Align.bottomRight:
g.drawRoundRectComplex(0, 0, W, H, R, 0, 0, 0);
break;
case Align.left:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, R);
break;
case Align.right:
g.drawRoundRectComplex(0, 0, W, H, R, 0, R, 0);
break;
case Align.center:
g.drawRoundRect(0, 0, W, H, R, R);
break;
};
} else {
g.drawRoundRect(0, 0, W, H, R, R);
};
}
}
}//package com.google.analytics.debug
Section 115
//Debug (com.google.analytics.debug.Debug)
package com.google.analytics.debug {
import flash.events.*;
import flash.ui.*;
public class Debug extends Label {
private var _lines:Array;
private var _preferredForcedWidth:uint;// = 540
private var _linediff:int;// = 0
public var maxLines:uint;// = 16
public static var count:uint = 0;
public function Debug(color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
if (alignement == null){
alignement = Align.bottom;
};
super("", "uiLabel", color, alignement, stickToEdge);
this.name = ("Debug" + count++);
_lines = [];
selectable = true;
addEventListener(KeyboardEvent.KEY_DOWN, onKey);
}
public function writeBold(message:String):void{
write(message, true);
}
private function _getLinesToDisplay(direction:int=0):Array{
var lines:Array;
var start:uint;
var end:uint;
if ((_lines.length - 1) > maxLines){
if ((_linediff <= 0)){
_linediff = (_linediff + direction);
} else {
if ((((_linediff > 0)) && ((direction < 0)))){
_linediff = (_linediff + direction);
};
};
start = ((_lines.length - maxLines) + _linediff);
end = (start + maxLines);
lines = _lines.slice(start, end);
} else {
lines = _lines;
};
return (lines);
}
private function onKey(event:KeyboardEvent=null):void{
var lines:Array;
switch (event.keyCode){
case Keyboard.DOWN:
lines = _getLinesToDisplay(1);
break;
case Keyboard.UP:
lines = _getLinesToDisplay(-1);
break;
default:
lines = null;
};
if (lines == null){
return;
};
text = lines.join("\n");
}
override public function get forcedWidth():uint{
if (this.parent){
if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){
return (_preferredForcedWidth);
};
return (UISprite(this.parent).forcedWidth);
} else {
};
return (!NULL!);
}
public function write(message:String, bold:Boolean=false):void{
var inputLines:Array;
if (message.indexOf("") > -1){
inputLines = message.split("\n");
} else {
inputLines = [message];
};
var pre:String = "";
var post:String = "";
if (bold){
pre = "<b>";
post = "</b>";
};
var i:int;
while (i < inputLines.length) {
_lines.push(((pre + inputLines[i]) + post));
i++;
};
var lines:Array = _getLinesToDisplay();
text = lines.join("\n");
}
public function close():void{
dispose();
}
override protected function dispose():void{
removeEventListener(KeyboardEvent.KEY_DOWN, onKey);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 116
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration)
package com.google.analytics.debug {
import flash.net.*;
import com.google.analytics.core.*;
import flash.utils.*;
import flash.ui.*;
public class DebugConfiguration {
public var showHideKey:Number;
private var _mode:VisualDebugMode;
private var _verbose:Boolean;// = false
public var destroyKey:Number;
public var GIFRequests:Boolean;// = false
public var showInfos:Boolean;// = true
public var infoTimeout:Number;// = 1000
public var minimizedOnStart:Boolean;// = false
private var _active:Boolean;// = false
public var traceOutput:Boolean;// = false
public var layout:ILayout;
public var warningTimeout:Number;// = 1500
public var javascript:Boolean;// = false
public var showWarnings:Boolean;// = true
private var _visualInitialized:Boolean;// = false
public function DebugConfiguration(){
_mode = VisualDebugMode.basic;
showHideKey = Keyboard.SPACE;
destroyKey = Keyboard.BACKSPACE;
super();
}
public function get verbose():Boolean{
return (_verbose);
}
public function set verbose(value:Boolean):void{
_verbose = value;
}
public function set mode(value):void{
if ((value is String)){
switch (value){
case "geek":
value = VisualDebugMode.geek;
break;
case "advanced":
value = VisualDebugMode.advanced;
break;
case "basic":
default:
value = VisualDebugMode.basic;
};
};
_mode = value;
}
public function success(message:String):void{
if (layout){
layout.createSuccessAlert(message);
};
if (traceOutput){
trace((("[+] " + message) + " !!"));
};
}
public function get active():Boolean{
return (_active);
}
private function _initializeVisual():void{
if (layout){
layout.init();
_visualInitialized = true;
};
}
private function _destroyVisual():void{
if (((layout) && (_visualInitialized))){
layout.destroy();
};
}
public function warning(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showWarnings))){
layout.createWarning(message);
};
if (traceOutput){
trace((("## " + message) + " ##"));
};
}
private function _filter(mode:VisualDebugMode=null):Boolean{
return (((mode) && ((int(mode) >= int(this.mode)))));
}
public function failure(message:String):void{
if (layout){
layout.createFailureAlert(message);
};
if (traceOutput){
trace((("[-] " + message) + " !!"));
};
}
public function get mode(){
return (_mode);
}
public function set active(value:Boolean):void{
_active = value;
if (_active){
_initializeVisual();
} else {
_destroyVisual();
};
}
protected function trace(message:String):void{
var msgs:Array;
var j:int;
var messages:Array = [];
var pre0:String = "";
var pre1:String = "";
if (this.mode == VisualDebugMode.geek){
pre0 = (getTimer() + " - ");
pre1 = (new Array(pre0.length).join(" ") + " ");
};
if (message.indexOf("\n") > -1){
msgs = message.split("\n");
j = 0;
while (j < msgs.length) {
if (msgs[j] == ""){
} else {
if (j == 0){
messages.push((pre0 + msgs[j]));
} else {
messages.push((pre1 + msgs[j]));
};
};
j++;
};
} else {
messages.push((pre0 + message));
};
var len:int = messages.length;
var i:int;
while (i < len) {
trace(messages[i]);
i++;
};
}
public function alert(message:String):void{
if (layout){
layout.createAlert(message);
};
if (traceOutput){
trace((("!! " + message) + " !!"));
};
}
public function info(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showInfos))){
layout.createInfo(message);
};
if (traceOutput){
trace(message);
};
}
public function alertGifRequest(message:String, request:URLRequest, ref:GIFRequest):void{
if (layout){
layout.createGIFRequestAlert(message, request, ref);
};
if (traceOutput){
trace(((">> " + message) + " <<"));
};
}
}
}//package com.google.analytics.debug
Section 117
//FailureAlert (com.google.analytics.debug.FailureAlert)
package com.google.analytics.debug {
public class FailureAlert extends Alert {
public function FailureAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align = Align.bottomLeft;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiFailure", Style.failureColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 118
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert)
package com.google.analytics.debug {
public class GIFRequestAlert extends Alert {
public function GIFRequestAlert(text:String, actions:Array){
super(text, actions);
}
}
}//package com.google.analytics.debug
Section 119
//ILayout (com.google.analytics.debug.ILayout)
package com.google.analytics.debug {
import flash.display.*;
import flash.net.*;
import com.google.analytics.core.*;
public interface ILayout {
function createAlert(:String):void;
function addToStage(:DisplayObject):void;
function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void;
function createWarning(:String):void;
function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void;
function createInfo(:String):void;
function createFailureAlert(:String):void;
function addToPanel(_arg1:String, _arg2:DisplayObject):void;
function init():void;
function createSuccessAlert(:String):void;
function createVisualDebug():void;
function destroy():void;
function bringToFront(:DisplayObject):void;
function isAvailable():Boolean;
}
}//package com.google.analytics.debug
Section 120
//Info (com.google.analytics.debug.Info)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Info extends Label {
private var _timer:Timer;
public function Info(text:String="", timeout:uint=3000){
super(text, "uiInfo", Style.infoColor, Align.top, true);
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function onComplete(event:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 121
//Label (com.google.analytics.debug.Label)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class Label extends UISprite {
private var _color:uint;
private var _background:Shape;
private var _textField:TextField;
public var stickToEdge:Boolean;
private var _text:String;
protected var selectable:Boolean;
private var _tag:String;
public static var count:uint = 0;
public function Label(text:String="", tag:String="uiLabel", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
super();
this.name = ("Label" + count++);
selectable = false;
_background = new Shape();
_textField = new TextField();
_text = text;
_tag = tag;
if (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (color == 0){
color = Style.backgroundColor;
};
_color = color;
_textField.addEventListener(TextEvent.LINK, onLink);
}
public function get tag():String{
return (_tag);
}
private function _draw():void{
var g:Graphics = _background.graphics;
g.clear();
g.beginFill(_color);
var W:uint = _textField.width;
var H:uint = _textField.height;
if (forcedWidth > 0){
W = forcedWidth;
};
Background.drawRounded(this, g, W, H);
g.endFill();
}
public function get text():String{
return (_textField.text);
}
public function appendText(value:String, newtag:String=""):void{
if (value == ""){
return;
};
if (newtag == ""){
newtag = tag;
};
_textField.htmlText = (_textField.htmlText + (((("<span class=\"" + newtag) + "\">") + value) + "</span>"));
_text = (_text + value);
_draw();
resize();
}
public function set text(value:String):void{
if (value == ""){
value = _text;
};
_textField.htmlText = (((("<span class=\"" + tag) + "\">") + value) + "</span>");
_text = value;
_draw();
resize();
}
override protected function layout():void{
_textField.type = TextFieldType.DYNAMIC;
_textField.autoSize = TextFieldAutoSize.LEFT;
_textField.background = false;
_textField.selectable = selectable;
_textField.multiline = true;
_textField.styleSheet = Style.sheet;
this.text = _text;
addChild(_background);
addChild(_textField);
}
public function set tag(value:String):void{
_tag = value;
text = "";
}
public function onLink(event:TextEvent):void{
}
override protected function dispose():void{
_textField.removeEventListener(TextEvent.LINK, onLink);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 122
//Layout (com.google.analytics.debug.Layout)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import com.google.analytics.core.*;
import com.google.analytics.*;
public class Layout implements ILayout {
private var _display:DisplayObject;
private var _infoQueue:Array;
private var _maxCharPerLine:int;// = 85
private var _hasInfo:Boolean;
private var _warningQueue:Array;
private var _hasDebug:Boolean;
private var _hasWarning:Boolean;
private var _mainPanel:Panel;
private var _GRAlertQueue:Array;
private var _debug:DebugConfiguration;
public var visualDebug:Debug;
private var _hasGRAlert:Boolean;
public function Layout(debug:DebugConfiguration, display:DisplayObject){
super();
_display = display;
_debug = debug;
_hasWarning = false;
_hasInfo = false;
_hasDebug = false;
_hasGRAlert = false;
_warningQueue = [];
_infoQueue = [];
_GRAlertQueue = [];
}
private function onKey(event:KeyboardEvent=null):void{
switch (event.keyCode){
case _debug.showHideKey:
_mainPanel.visible = !(_mainPanel.visible);
break;
case _debug.destroyKey:
destroy();
break;
};
}
public function createWarning(message:String):void{
if (((_hasWarning) || (!(isAvailable())))){
_warningQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasWarning = true;
var w:Warning = new Warning(message, _debug.warningTimeout);
addToPanel("analytics", w);
w.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
public function bringToFront(visual:DisplayObject):void{
_display.stage.setChildIndex(visual, (_display.stage.numChildren - 1));
}
public function createFailureAlert(message:String):void{
var actionClose:AlertAction;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
var fa:Alert = new FailureAlert(_debug, message, [actionClose]);
addToPanel("analytics", fa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function init():void{
var spaces = 10;
var W:uint = (_display.stage.stageWidth - (spaces * 2));
var H:uint = (_display.stage.stageHeight - (spaces * 2));
var mp:Panel = new Panel("analytics", W, H);
mp.alignement = Align.top;
mp.stickToEdge = false;
mp.title = ("Google Analytics v" + GATracker.version);
_mainPanel = mp;
addToStage(mp);
bringToFront(mp);
if (_debug.minimizedOnStart){
_mainPanel.onToggle();
};
createVisualDebug();
_display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true);
}
public function addToPanel(name:String, visual:DisplayObject):void{
var panel:Panel;
var d:DisplayObject = _display.stage.getChildByName(name);
if (d){
panel = (d as Panel);
panel.addData(visual);
} else {
trace((("panel \"" + name) + "\" not found"));
};
}
private function _clearInfo(event:Event):void{
_hasInfo = false;
if (_infoQueue.length > 0){
createInfo(_infoQueue.shift());
};
}
private function _filterMaxChars(message:String, maxCharPerLine:int=0):String{
var line:String;
var CRLF:String = "\n";
var output:Array = [];
var lines:Array = message.split(CRLF);
if (maxCharPerLine == 0){
maxCharPerLine = _maxCharPerLine;
};
var i:int;
while (i < lines.length) {
line = lines[i];
while (line.length > maxCharPerLine) {
output.push(line.substr(0, maxCharPerLine));
line = line.substring(maxCharPerLine);
};
output.push(line);
i++;
};
return (output.join(CRLF));
}
private function _clearGRAlert(event:Event):void{
_hasGRAlert = false;
if (_GRAlertQueue.length > 0){
createGIFRequestAlert.apply(this, _GRAlertQueue.shift());
};
}
public function createSuccessAlert(message:String):void{
var actionClose:AlertAction;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
var sa:Alert = new SuccessAlert(_debug, message, [actionClose]);
addToPanel("analytics", sa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function isAvailable():Boolean{
return (!((_display.stage == null)));
}
public function createAlert(message:String):void{
message = _filterMaxChars(message);
var a:Alert = new Alert(message, [new AlertAction("Close", "close", "close")]);
addToPanel("analytics", a);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
public function createInfo(message:String):void{
if (((_hasInfo) || (!(isAvailable())))){
_infoQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasInfo = true;
var i:Info = new Info(message, _debug.infoTimeout);
addToPanel("analytics", i);
i.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true);
if (_hasDebug){
visualDebug.write(message);
};
}
public function createGIFRequestAlert(message:String, request:URLRequest, ref:GIFRequest):void{
var message = message;
var request = request;
var ref = ref;
if (_hasGRAlert){
_GRAlertQueue.push([message, request, ref]);
return;
};
_hasGRAlert = true;
var f:Function = function ():void{
ref.sendRequest(request);
};
message = _filterMaxChars(message);
var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]);
addToPanel("analytics", gra);
gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.write(message);
};
}
public function createVisualDebug():void{
if (!visualDebug){
visualDebug = new Debug();
visualDebug.alignement = Align.bottom;
visualDebug.stickToEdge = true;
addToPanel("analytics", visualDebug);
_hasDebug = true;
};
}
public function addToStage(visual:DisplayObject):void{
_display.stage.addChild(visual);
}
private function _clearWarning(event:Event):void{
_hasWarning = false;
if (_warningQueue.length > 0){
createWarning(_warningQueue.shift());
};
}
public function createPanel(name:String, width:uint, height:uint):void{
var p:Panel = new Panel(name, width, height);
p.alignement = Align.center;
p.stickToEdge = false;
addToStage(p);
bringToFront(p);
}
public function destroy():void{
_mainPanel.close();
_debug.layout = null;
}
}
}//package com.google.analytics.debug
Section 123
//Margin (com.google.analytics.debug.Margin)
package com.google.analytics.debug {
public class Margin {
public var top:int;
public var left:int;
public var bottom:int;
public var right:int;
public function Margin(top:int=0, bottom:int=0, left:int=0, right:int=0){
super();
this.top = top;
this.bottom = bottom;
this.left = left;
this.right = right;
}
}
}//package com.google.analytics.debug
Section 124
//Panel (com.google.analytics.debug.Panel)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class Panel extends UISprite {
private var _savedH:uint;
private var _data:UISprite;
private var _mask:Sprite;
private var _background:Shape;
private var _savedW:uint;
private var _stickToEdge:Boolean;
private var _border:Shape;
private var _borderColor:uint;
protected var baseAlpha:Number;
private var _backgroundColor:uint;
private var _title:Label;
private var _colapsed:Boolean;
private var _name:String;
public function Panel(name:String, width:uint, height:uint, backgroundColor:uint=0, borderColor:uint=0, baseAlpha:Number=0.3, alignement:Align=null, stickToEdge:Boolean=false){
super();
_name = name;
this.name = name;
this.mouseEnabled = false;
_colapsed = false;
forcedWidth = width;
forcedHeight = height;
this.baseAlpha = baseAlpha;
_background = new Shape();
_data = new UISprite();
_data.forcedWidth = width;
_data.forcedHeight = height;
_data.mouseEnabled = false;
_title = new Label(name, "uiLabel", 0xFFFFFF, Align.topLeft, stickToEdge);
_title.buttonMode = true;
_title.margin.top = 0.6;
_title.margin.left = 0.6;
_title.addEventListener(MouseEvent.CLICK, onToggle);
_title.mouseChildren = false;
_border = new Shape();
_mask = new Sprite();
_mask.useHandCursor = false;
_mask.mouseEnabled = false;
_mask.mouseChildren = false;
if (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (backgroundColor == 0){
backgroundColor = Style.backgroundColor;
};
_backgroundColor = backgroundColor;
if (borderColor == 0){
borderColor = Style.borderColor;
};
_borderColor = borderColor;
}
public function get stickToEdge():Boolean{
return (_stickToEdge);
}
public function onToggle(event:MouseEvent=null):void{
if (_colapsed){
_data.visible = true;
} else {
_data.visible = false;
};
_colapsed = !(_colapsed);
_update();
resize();
}
public function set stickToEdge(value:Boolean):void{
_stickToEdge = value;
_title.stickToEdge = value;
}
override protected function dispose():void{
_title.removeEventListener(MouseEvent.CLICK, onToggle);
super.dispose();
}
private function _draw():void{
var W:uint;
var H:uint;
if (((_savedW) && (_savedH))){
forcedWidth = _savedW;
forcedHeight = _savedH;
};
if (!_colapsed){
W = forcedWidth;
H = forcedHeight;
} else {
W = _title.width;
H = _title.height;
_savedW = forcedWidth;
_savedH = forcedHeight;
forcedWidth = W;
forcedHeight = H;
};
var g0:Graphics = _background.graphics;
g0.clear();
g0.beginFill(_backgroundColor);
Background.drawRounded(this, g0, W, H);
g0.endFill();
var g01:Graphics = _data.graphics;
g01.clear();
g01.beginFill(_backgroundColor, 0);
Background.drawRounded(this, g01, W, H);
g01.endFill();
var g1:Graphics = _border.graphics;
g1.clear();
g1.lineStyle(0.1, _borderColor);
Background.drawRounded(this, g1, W, H);
g1.endFill();
var g2:Graphics = _mask.graphics;
g2.clear();
g2.beginFill(_backgroundColor);
Background.drawRounded(this, g2, (W + 1), (H + 1));
g2.endFill();
}
public function get title():String{
return (_title.text);
}
private function _update():void{
_draw();
if (baseAlpha < 1){
_background.alpha = baseAlpha;
_border.alpha = baseAlpha;
};
}
public function addData(child:DisplayObject):void{
_data.addChild(child);
}
override protected function layout():void{
_update();
addChild(_background);
addChild(_data);
addChild(_title);
addChild(_border);
addChild(_mask);
mask = _mask;
}
public function set title(value:String):void{
_title.text = value;
}
public function close():void{
dispose();
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 125
//Style (com.google.analytics.debug.Style)
package com.google.analytics.debug {
public const Style:_Style = new _Style();
}//package com.google.analytics.debug
Section 126
//SuccessAlert (com.google.analytics.debug.SuccessAlert)
package com.google.analytics.debug {
public class SuccessAlert extends Alert {
public function SuccessAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align = Align.bottomLeft;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiSuccess", Style.successColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 127
//UISprite (com.google.analytics.debug.UISprite)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class UISprite extends Sprite {
private var _forcedWidth:uint;
public var margin:Margin;
protected var alignTarget:DisplayObject;
protected var listenResize:Boolean;
public var alignement:Align;
private var _forcedHeight:uint;
public function UISprite(alignTarget:DisplayObject=null){
super();
listenResize = false;
alignement = Align.none;
this.alignTarget = alignTarget;
margin = new Margin();
addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
}
public function get forcedHeight():uint{
if (_forcedHeight){
return (_forcedHeight);
};
return (height);
}
private function _onAddedToStage(event:Event):void{
layout();
resize();
}
protected function dispose():void{
var d:DisplayObject;
var i:int;
while (i < numChildren) {
d = getChildAt(i);
if (d){
removeChild(d);
};
i++;
};
}
public function set forcedHeight(value:uint):void{
_forcedHeight = value;
}
public function set forcedWidth(value:uint):void{
_forcedWidth = value;
}
protected function layout():void{
}
public function get forcedWidth():uint{
if (_forcedWidth){
return (_forcedWidth);
};
return (width);
}
public function alignTo(alignement:Align, target:DisplayObject=null):void{
var H:uint;
var W:uint;
var X:uint;
var Y:uint;
var t:UISprite;
if (target == null){
if ((parent is Stage)){
target = this.stage;
} else {
target = parent;
};
};
if (target == this.stage){
if (this.stage == null){
return;
};
H = this.stage.stageHeight;
W = this.stage.stageWidth;
X = 0;
Y = 0;
} else {
t = (target as UISprite);
if (t.forcedHeight){
H = t.forcedHeight;
} else {
H = t.height;
};
if (t.forcedWidth){
W = t.forcedWidth;
} else {
W = t.width;
};
X = 0;
Y = 0;
};
switch (alignement){
case Align.top:
x = ((W / 2) - (forcedWidth / 2));
y = (Y + margin.top);
break;
case Align.bottom:
x = ((W / 2) - (forcedWidth / 2));
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.left:
x = (X + margin.left);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.right:
x = (((X + W) - forcedWidth) - margin.right);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.center:
x = ((W / 2) - (forcedWidth / 2));
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.topLeft:
x = (X + margin.left);
y = (Y + margin.top);
break;
case Align.topRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (Y + margin.top);
break;
case Align.bottomLeft:
x = (X + margin.left);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.bottomRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
};
if (((!(listenResize)) && (!((alignement == Align.none))))){
target.addEventListener(Event.RESIZE, onResize, false, 0, true);
listenResize = true;
};
this.alignement = alignement;
this.alignTarget = target;
}
private function _onRemovedFromStage(event:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
dispose();
}
public function resize():void{
if (alignement != Align.none){
alignTo(alignement, alignTarget);
};
}
protected function onResize(event:Event):void{
resize();
}
}
}//package com.google.analytics.debug
Section 128
//Warning (com.google.analytics.debug.Warning)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Warning extends Label {
private var _timer:Timer;
public function Warning(text:String="", timeout:uint=3000){
super(text, "uiWarning", Style.warningColor, Align.top, false);
margin.top = 32;
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function onComplete(event:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 129
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode)
package com.google.analytics.debug {
public class VisualDebugMode {
private var _value:int;
private var _name:String;
public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced");
;
public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek");
;
public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic");
;
public function VisualDebugMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 130
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent)
package com.google.analytics.events {
import flash.events.*;
import com.google.analytics.*;
public class AnalyticsEvent extends Event {
public var tracker:AnalyticsTracker;
public static const READY:String = "ready";
public function AnalyticsEvent(type:String, tracker:AnalyticsTracker, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this.tracker = tracker;
}
override public function clone():Event{
return (new AnalyticsEvent(type, tracker, bubbles, cancelable));
}
}
}//package com.google.analytics.events
Section 131
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class AdSenseGlobals extends JavascriptProxy {
private var _gaGlobalVerified:Boolean;// = false
public static var gaGlobal_js:XML = <script>
<![CDATA[
function()
{
try
{
gaGlobal
}
catch(e)
{
gaGlobal = {} ;
}
}
]]>
</script>
;
public function AdSenseGlobals(debug:DebugConfiguration){
super(debug);
}
public function set vid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.vid", value);
}
public function get hid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.hid"));
}
public function set hid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.hid", value);
}
public function get dh():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.dh"));
}
public function get sid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.sid"));
}
public function get vid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.vid"));
}
private function _verify():void{
if (!_gaGlobalVerified){
executeBlock(gaGlobal_js);
_gaGlobalVerified = true;
};
}
public function set sid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.sid", value);
}
public function get gaGlobal():Object{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal"));
}
}
}//package com.google.analytics.external
Section 132
//HTMLDOM (com.google.analytics.external.HTMLDOM)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class HTMLDOM extends JavascriptProxy {
private var _referrer:String;
private var _language:String;
private var _host:String;
private var _pathname:String;
private var _location:String;
private var _search:String;
private var _characterSet:String;
private var _title:String;
private var _protocol:String;
private var _colorDepth:String;
public static var cache_properties_js:XML = <script>
<![CDATA[
function()
{
var obj = {};
obj.host = document.location.host;
obj.language = navigator.language ? navigator.language : navigator.browserLanguage;
obj.characterSet = document.characterSet ? document.characterSet : document.charset;
obj.colorDepth = window.screen.colorDepth;
obj.location = document.location.toString();
obj.pathname = document.location.pathname;
obj.protocol = document.location.protocol;
obj.search = document.location.search;
obj.referrer = document.referrer;
obj.title = document.title;
return obj;
}
]]>
</script>
;
public function HTMLDOM(debug:DebugConfiguration){
super(debug);
}
public function get search():String{
if (_search){
return (_search);
};
if (!isAvailable()){
return (null);
};
_search = getProperty("document.location.search");
return (_search);
}
public function get location():String{
if (_location){
return (_location);
};
if (!isAvailable()){
return (null);
};
_location = getPropertyString("document.location");
return (_location);
}
public function get pathname():String{
if (_pathname){
return (_pathname);
};
if (!isAvailable()){
return (null);
};
_pathname = getProperty("document.location.pathname");
return (_pathname);
}
public function cacheProperties():void{
if (!isAvailable()){
return;
};
var obj:Object = call(cache_properties_js);
if (obj){
_host = obj.host;
_language = obj.language;
_characterSet = obj.characterSet;
_colorDepth = obj.colorDepth;
_location = obj.location;
_pathname = obj.pathname;
_protocol = obj.protocol;
_search = obj.search;
_referrer = obj.referrer;
_title = obj.title;
};
}
public function get language():String{
if (_language){
return (_language);
};
if (!isAvailable()){
return (null);
};
var lang:String = getProperty("navigator.language");
if (lang == null){
lang = getProperty("navigator.browserLanguage");
};
_language = lang;
return (_language);
}
public function get colorDepth():String{
if (_colorDepth){
return (_colorDepth);
};
if (!isAvailable()){
return (null);
};
_colorDepth = getProperty("window.screen.colorDepth");
return (_colorDepth);
}
public function get referrer():String{
if (_referrer){
return (_referrer);
};
if (!isAvailable()){
return (null);
};
_referrer = getProperty("document.referrer");
return (_referrer);
}
public function get protocol():String{
if (_protocol){
return (_protocol);
};
if (!isAvailable()){
return (null);
};
_protocol = getProperty("document.location.protocol");
return (_protocol);
}
public function get host():String{
if (_host){
return (_host);
};
if (!isAvailable()){
return (null);
};
_host = getProperty("document.location.host");
return (_host);
}
public function get characterSet():String{
if (_characterSet){
return (_characterSet);
};
if (!isAvailable()){
return (null);
};
var cs:String = getProperty("document.characterSet");
if (cs == null){
cs = getProperty("document.charset");
};
_characterSet = cs;
return (_characterSet);
}
public function get title():String{
if (_title){
return (_title);
};
if (!isAvailable()){
return (null);
};
_title = getProperty("document.title");
return (_title);
}
}
}//package com.google.analytics.external
Section 133
//JavascriptProxy (com.google.analytics.external.JavascriptProxy)
package com.google.analytics.external {
import com.google.analytics.debug.*;
import flash.external.*;
import flash.system.*;
public class JavascriptProxy {
private var _notAvailableWarning:Boolean;// = true
private var _debug:DebugConfiguration;
public static var setProperty_js:XML = <script>
<![CDATA[
function( path , value )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
target[ prop ] = value ;
}
]]>
</script>
;
public static var hasProperty_js:XML = <script>
<![CDATA[
function( path )
{
var paths;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
}
else
{
paths = [path];
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
if( target )
{
return true;
}
else
{
return false;
}
}
]]>
</script>
;
public static var setPropertyRef_js:XML = <script>
<![CDATA[
function( path , target )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
alert( "paths:"+paths.length+", prop:"+prop );
var targets;
var name;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
alert( "targets:"+targets.length+", name:"+name );
var root = window;
var len = paths.length;
for( var i = 0 ; i < len ; i++ )
{
root = root[ paths[i] ] ;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
root[ prop ] = ref[name] ;
}
]]>
</script>
;
public function JavascriptProxy(debug:DebugConfiguration){
super();
_debug = debug;
}
public function getProperty(name:String){
return (call((name + ".valueOf")));
}
public function hasProperty(path:String):Boolean{
return (call(hasProperty_js, path));
}
public function setProperty(path:String, value):void{
call(setProperty_js, path, value);
}
public function executeBlock(data:String):void{
var data = data;
if (isAvailable()){
ExternalInterface.call(data);
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
}
public function getPropertyString(name:String):String{
return (call((name + ".toString")));
}
public function setPropertyByReference(path:String, target:String):void{
call(setPropertyRef_js, path, target);
}
public function call(functionName:String, ... _args){
var output:String;
var functionName = functionName;
var args = _args;
if (isAvailable()){
if (((_debug.javascript) && (_debug.verbose))){
output = "";
output = ("Flash->JS: " + functionName);
output = (output + "( ");
if (args.length > 0){
output = (output + args.join(","));
};
output = (output + " )");
_debug.info(output);
};
args.unshift(functionName);
return (ExternalInterface.call.apply(ExternalInterface, args));
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
return (null);
}
public function isAvailable():Boolean{
var available:Boolean = ExternalInterface.available;
if (((available) && ((Capabilities.playerType == "External")))){
available = false;
};
if (((((!(available)) && (_debug.javascript))) && (_notAvailableWarning))){
_debug.warning("ExternalInterface is not available.");
_notAvailableWarning = false;
};
return (available);
}
}
}//package com.google.analytics.external
Section 134
//Environment (com.google.analytics.utils.Environment)
package com.google.analytics.utils {
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import flash.system.*;
public class Environment {
private var _dom:HTMLDOM;
private var _appName:String;
private var _debug:DebugConfiguration;
private var _appVersion:Version;
private var _url:String;
private var _protocol:Protocols;
private var _userAgent:UserAgent;
public function Environment(url:String="", app:String="", version:String="", debug:DebugConfiguration=null, dom:HTMLDOM=null){
var v:Version;
super();
if (app == ""){
if (isAIR()){
app = "AIR";
} else {
app = "Flash";
};
};
if (version == ""){
v = flashVersion;
} else {
v = Version.fromString(version);
};
_url = url;
_appName = app;
_appVersion = v;
_debug = debug;
_dom = dom;
}
public function isAIR():Boolean{
return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application"))));
}
public function get screenWidth():Number{
return (Capabilities.screenResolutionX);
}
public function get playerType():String{
return (Capabilities.playerType);
}
public function get locationSearch():String{
var _search:String = _dom.search;
if (_search){
return (_search);
};
return ("");
}
public function get protocol():Protocols{
if (!_protocol){
_findProtocol();
};
return (_protocol);
}
public function get flashVersion():Version{
var v:Version = Version.fromString(Capabilities.version.split(" ")[1], ",");
return (v);
}
public function get userAgent():UserAgent{
if (!_userAgent){
_userAgent = new UserAgent(this, appName, appVersion.toString(4));
};
return (_userAgent);
}
public function get languageEncoding():String{
var _charset:String;
if (System.useCodePage){
_charset = _dom.characterSet;
if (_charset){
return (_charset);
};
return ("-");
};
return ("UTF-8");
}
public function get appName():String{
return (_appName);
}
public function get screenColorDepth():String{
var color:String;
switch (Capabilities.screenColor){
case "bw":
color = "1";
break;
case "gray":
color = "2";
break;
case "color":
default:
color = "24";
};
var _colorDepth:String = _dom.colorDepth;
if (_colorDepth){
color = _colorDepth;
};
return (color);
}
private function _findProtocol():void{
var URL:String;
var test:String;
var p:Protocols = Protocols.none;
if (_url != ""){
URL = _url.toLowerCase();
test = URL.substr(0, 5);
switch (test){
case "file:":
p = Protocols.file;
break;
case "http:":
p = Protocols.HTTP;
break;
case "https":
if (URL.charAt(5) == ":"){
p = Protocols.HTTPS;
};
break;
default:
_protocol = Protocols.none;
};
};
var _proto:String = _dom.protocol;
var proto:String = (p.toString() + ":").toLowerCase();
if (((((_proto) && (!((_proto == proto))))) && (_debug))){
_debug.warning(((("Protocol mismatch: SWF=" + proto) + ", DOM=") + _proto));
};
_protocol = p;
}
public function get locationSWFPath():String{
return (_url);
}
public function get platform():String{
var p:String = Capabilities.manufacturer;
return (p.split("Adobe ")[1]);
}
public function get operatingSystem():String{
return (Capabilities.os);
}
public function set appName(value:String):void{
_appName = value;
userAgent.applicationProduct = value;
}
function set url(value:String):void{
_url = value;
}
public function get referrer():String{
var _referrer:String = _dom.referrer;
if (_referrer){
return (_referrer);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function isInHTML():Boolean{
return ((Capabilities.playerType == "PlugIn"));
}
public function get language():String{
var _lang:String = _dom.language;
var lang:String = Capabilities.language;
if (_lang){
if ((((_lang.length > lang.length)) && ((_lang.substr(0, lang.length) == lang)))){
lang = _lang;
};
};
return (lang);
}
public function get domainName():String{
var URL:String;
var str:String;
var end:int;
if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){
URL = _url.toLowerCase();
if (protocol == Protocols.HTTP){
str = URL.split("http://").join("");
} else {
if (protocol == Protocols.HTTPS){
str = URL.split("https://").join("");
};
};
end = str.indexOf("/");
if (end > -1){
str = str.substring(0, end);
};
return (str);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function set userAgent(custom:UserAgent):void{
_userAgent = custom;
}
public function set appVersion(value:Version):void{
_appVersion = value;
userAgent.applicationVersion = value.toString(4);
}
public function get screenHeight():Number{
return (Capabilities.screenResolutionY);
}
public function get locationPath():String{
var _pathname:String = _dom.pathname;
if (_pathname){
return (_pathname);
};
return ("");
}
public function get documentTitle():String{
var _title:String = _dom.title;
if (_title){
return (_title);
};
return ("");
}
public function get appVersion():Version{
return (_appVersion);
}
}
}//package com.google.analytics.utils
Section 135
//Protocols (com.google.analytics.utils.Protocols)
package com.google.analytics.utils {
public class Protocols {
private var _value:int;
private var _name:String;
public static const none:Protocols = new Protocols(0, "none");
;
public static const HTTPS:Protocols = new Protocols(3, "HTTPS");
;
public static const file:Protocols = new Protocols(1, "file");
;
public static const HTTP:Protocols = new Protocols(2, "HTTP");
;
public function Protocols(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.utils
Section 136
//Timespan (com.google.analytics.utils.Timespan)
package com.google.analytics.utils {
public class Timespan {
public static var sixmonths:Number = 15768000;
public static var twoyears:Number = 63072000;
public static var thirtyminutes:Number = 1800;
public function Timespan(){
super();
}
}
}//package com.google.analytics.utils
Section 137
//URL (com.google.analytics.utils.URL)
package com.google.analytics.utils {
public class URL {
private var _url:String;
public function URL(url:String=""){
super();
_url = url.toLowerCase();
}
public function get domain():String{
var parts:Array;
if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){
parts = hostName.split(".");
switch (parts.length){
case 2:
return (hostName);
case 3:
if (parts[1] == "co"){
return (hostName);
};
parts.shift();
return (parts.join("."));
case 4:
parts.shift();
return (parts.join("."));
};
};
return ("");
}
public function get path():String{
var _path:String = _url;
if (_path.indexOf("://") > -1){
_path = _path.split("://")[1];
};
if (_path.indexOf(hostName) == 0){
_path = _path.substr(hostName.length);
};
if (_path.indexOf("?") > -1){
_path = _path.split("?")[0];
};
if (_path.charAt(0) != "/"){
_path = ("/" + _path);
};
return (_path);
}
public function get protocol():Protocols{
var proto:String = _url.split("://")[0];
switch (proto){
case "file":
return (Protocols.file);
case "http":
return (Protocols.HTTP);
case "https":
return (Protocols.HTTPS);
default:
return (Protocols.none);
};
}
public function get hostName():String{
var hostname:String = _url;
if (hostname.indexOf("://") > -1){
hostname = hostname.split("://")[1];
};
if (hostname.indexOf("/") > -1){
hostname = hostname.split("/")[0];
};
if (hostname.indexOf("?") > -1){
hostname = hostname.split("?")[0];
};
if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){
return ("");
};
return (hostname);
}
public function get subDomain():String{
if (((!((domain == ""))) && (!((domain == hostName))))){
return (hostName.split(("." + domain)).join(""));
};
return ("");
}
public function get search():String{
var _search:String = _url;
if (_search.indexOf("://") > -1){
_search = _search.split("://")[1];
};
if (_search.indexOf(hostName) == 0){
_search = _search.substr(hostName.length);
};
if (_search.indexOf("?") > -1){
_search = _search.split("?")[1];
} else {
_search = "";
};
return (_search);
}
}
}//package com.google.analytics.utils
Section 138
//UserAgent (com.google.analytics.utils.UserAgent)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import flash.system.*;
public class UserAgent {
private var _localInfo:Environment;
private var _applicationProduct:String;
private var _version:Version;
public static var minimal:Boolean = false;
public function UserAgent(localInfo:Environment, product:String="", version:String=""){
super();
_localInfo = localInfo;
applicationProduct = product;
_version = Version.fromString(version);
}
public function get tamarinProductToken():String{
if (UserAgent.minimal){
return ("");
};
if (System.vmVersion){
return (("Tamarin/" + Utils.trim(System.vmVersion, true)));
};
return ("");
}
public function get applicationVersion():String{
return (_version.toString(2));
}
public function get vendorProductToken():String{
var vp:String = "";
if (_localInfo.isAIR()){
vp = (vp + "AIR");
} else {
vp = (vp + "FlashPlayer");
};
vp = (vp + "/");
vp = (vp + _version.toString(3));
return (vp);
}
public function toString():String{
var UA:String = "";
UA = (UA + applicationProductToken);
if (applicationComment != ""){
UA = (UA + (" " + applicationComment));
};
if (tamarinProductToken != ""){
UA = (UA + (" " + tamarinProductToken));
};
if (vendorProductToken != ""){
UA = (UA + (" " + vendorProductToken));
};
return (UA);
}
public function get applicationComment():String{
var comment:Array = [];
comment.push(_localInfo.platform);
comment.push(_localInfo.playerType);
if (!UserAgent.minimal){
comment.push(_localInfo.operatingSystem);
comment.push(_localInfo.language);
};
if (Capabilities.isDebugger){
comment.push("DEBUG");
};
if (comment.length > 0){
return ((("(" + comment.join("; ")) + ")"));
};
return ("");
}
public function set applicationVersion(value:String):void{
_version = Version.fromString(value);
}
public function get applicationProductToken():String{
var token:String = applicationProduct;
if (applicationVersion != ""){
token = (token + ("/" + applicationVersion));
};
return (token);
}
public function set applicationProduct(value:String):void{
_applicationProduct = value;
}
public function get applicationProduct():String{
return (_applicationProduct);
}
}
}//package com.google.analytics.utils
Section 139
//Variables (com.google.analytics.utils.Variables)
package com.google.analytics.utils {
import flash.net.*;
public dynamic class Variables {
public var post:Array;
public var URIencode:Boolean;
public var pre:Array;
public var sort:Boolean;// = true
public function Variables(source:String=null, pre:Array=null, post:Array=null){
pre = [];
post = [];
super();
if (source){
decode(source);
};
if (pre){
this.pre = pre;
};
if (post){
this.post = post;
};
}
private function _join(vars:Variables):void{
var prop:String;
if (!vars){
return;
};
for (prop in vars) {
this[prop] = vars[prop];
};
}
public function join(... _args):void{
var l:int = _args.length;
var i:int;
while (i < l) {
if (!(_args[i] is Variables)){
} else {
_join(_args[i]);
};
i++;
};
}
public function toString():String{
var value:String;
var p:String;
var component:String;
var i:int;
var j:int;
var priority:String;
var last:String;
var data:Array = [];
for (p in this) {
value = this[p];
if (URIencode){
value = encodeURI(value);
};
data.push(((p + "=") + value));
};
if (sort){
data.sort();
};
if (pre.length > 0){
pre.reverse();
i = 0;
while (i < pre.length) {
priority = pre[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(priority) == 0){
data.unshift(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
pre.reverse();
};
if (post.length > 0){
i = 0;
while (i < post.length) {
last = post[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(last) == 0){
data.push(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
};
return (data.join("&"));
}
public function decode(source:String):void{
var data:Array;
var prop:String;
var name:String;
var value:String;
var tmp:Array;
if (source == ""){
return;
};
if (source.indexOf("&") > -1){
data = source.split("&");
} else {
data = [source];
};
var i:int;
while (i < data.length) {
prop = data[i];
if (prop.indexOf("=") > -1){
tmp = prop.split("=");
name = tmp[0];
value = decodeURI(tmp[1]);
this[name] = value;
};
i++;
};
}
public function toURLVariables():URLVariables{
var p:String;
var urlvars:URLVariables = new URLVariables();
for (p in this) {
urlvars[p] = this[p];
};
return (urlvars);
}
}
}//package com.google.analytics.utils
Section 140
//Version (com.google.analytics.utils.Version)
package com.google.analytics.utils {
public class Version {
private var _revision:uint;
private var _maxBuild:uint;// = 0xFF
private var _maxMinor:uint;// = 15
private var _maxMajor:uint;// = 15
private var _separator:String;// = "."
private var _maxRevision:uint;// = 0xFFFF
private var _build:uint;
private var _major:uint;
private var _minor:uint;
public function Version(major:uint=0, minor:uint=0, build:uint=0, revision:uint=0){
var v:Version;
super();
if ((((((((major > _maxMajor)) && ((minor == 0)))) && ((build == 0)))) && ((revision == 0)))){
v = Version.fromNumber(major);
major = v.major;
minor = v.minor;
build = v.build;
revision = v.revision;
};
this.major = major;
this.minor = minor;
this.build = build;
this.revision = revision;
}
public function toString(fields:int=0):String{
var arr:Array;
if ((((fields <= 0)) || ((fields > 4)))){
fields = getFields();
};
switch (fields){
case 1:
arr = [major];
break;
case 2:
arr = [major, minor];
break;
case 3:
arr = [major, minor, build];
break;
case 4:
default:
arr = [major, minor, build, revision];
};
return (arr.join(_separator));
}
public function set revision(value:uint):void{
_revision = Math.min(value, _maxRevision);
}
public function get revision():uint{
return (_revision);
}
public function set build(value:uint):void{
_build = Math.min(value, _maxBuild);
}
public function set minor(value:uint):void{
_minor = Math.min(value, _maxMinor);
}
public function get build():uint{
return (_build);
}
public function set major(value:uint):void{
_major = Math.min(value, _maxMajor);
}
public function get minor():uint{
return (_minor);
}
private function getFields():int{
var f = 4;
if (revision == 0){
f--;
};
if ((((f == 3)) && ((build == 0)))){
f--;
};
if ((((f == 2)) && ((minor == 0)))){
f--;
};
return (f);
}
public function valueOf():uint{
return (((((major << 28) | (minor << 24)) | (build << 16)) | revision));
}
public function get major():uint{
return (_major);
}
public function equals(o):Boolean{
if (!(o is Version)){
return (false);
};
if ((((((((o.major == major)) && ((o.minor == minor)))) && ((o.build == build)))) && ((o.revision == revision)))){
return (true);
};
return (false);
}
public static function fromString(value:String="", separator:String="."):Version{
var values:Array;
var v:Version = new (Version);
if ((((value == "")) || ((value == null)))){
return (v);
};
if (value.indexOf(separator) > -1){
values = value.split(separator);
v.major = parseInt(values[0]);
v.minor = parseInt(values[1]);
v.build = parseInt(values[2]);
v.revision = parseInt(values[3]);
} else {
v.major = parseInt(value);
};
return (v);
}
public static function fromNumber(value:Number=0):Version{
var v:Version = new (Version);
if (((((((((((isNaN(value)) || ((value == 0)))) || ((value < 0)))) || ((value == Number.MAX_VALUE)))) || ((value == Number.POSITIVE_INFINITY)))) || ((value == Number.NEGATIVE_INFINITY)))){
return (v);
};
v.major = (value >>> 28);
v.minor = ((value & 251658240) >>> 24);
v.build = ((value & 0xFF0000) >>> 16);
v.revision = (value & 0xFFFF);
return (v);
}
}
}//package com.google.analytics.utils
Section 141
//Bridge (com.google.analytics.v4.Bridge)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
public class Bridge implements GoogleAnalyticsAPI {
private var _debug:DebugConfiguration;
private var _proxy:JavascriptProxy;
private var _jsContainer:String;// = "_GATracker"
private var _hasGATracker:Boolean;// = false
private var _account:String;
private static var _linkTrackingObject_js:XML = <script>
<![CDATA[
function( container , target )
{
var targets ;
var name ;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
window[container][target] = ref[name] ;
}
]]>
</script>
;
private static var _createTrackingObject_js:XML = <script>
<![CDATA[
function( acct )
{
_GATracker[acct] = _gat._getTracker(acct);
}
]]>
</script>
;
private static var _injectTrackingObject_js:XML = <script>
<![CDATA[
function()
{
try
{
_GATracker
}
catch(e)
{
_GATracker = {};
}
}
]]>
</script>
;
private static var _checkGAJS_js:XML = <script>
<![CDATA[
function()
{
if( _gat && _gat._getTracker )
{
return true;
}
return false;
}
]]>
</script>
;
private static var _checkValidTrackingObject_js:XML = <script>
<![CDATA[
function(acct)
{
if( _GATracker[acct] && (_GATracker[acct]._getAccount) )
{
return true ;
}
else
{
return false;
}
}
]]>
</script>
;
public function Bridge(account:String, debug:DebugConfiguration, jsproxy:JavascriptProxy){
var msg0:String;
var msg1:String;
var msg2:String;
super();
_account = account;
_debug = debug;
_proxy = jsproxy;
if (!_checkGAJS()){
msg0 = "";
msg0 = (msg0 + "ga.js not found, be sure to check if\n");
msg0 = (msg0 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n");
msg0 = (msg0 + "is included in the HTML.");
_debug.warning(msg0);
throw (new Error(msg0));
};
if (!_hasGATracker){
if (((_debug.javascript) && (_debug.verbose))){
msg1 = "";
msg1 = (msg1 + "The Google Analytics tracking code was not found on the container page\n");
msg1 = (msg1 + "we create it");
_debug.info(msg1, VisualDebugMode.advanced);
};
_injectTrackingObject();
};
if (Utils.validateAccount(account)){
_createTrackingObject(account);
} else {
if (_checkTrackingObject(account)){
_linkTrackingObject(account);
} else {
msg2 = "";
msg2 = (msg2 + (("JS Object \"" + account) + "\" doesn't exist in DOM\n"));
msg2 = (msg2 + "Bridge object not created.");
_debug.warning(msg2);
throw (new Error(msg2));
};
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_debug.info((((("link( " + targetUrl) + ", ") + useHash) + " )"));
_call("_link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_call("_addOrganic", newOrganicEngine);
}
public function setAllowLinker(enable:Boolean):void{
_debug.info((("setAllowLinker( " + enable) + " )"));
_call("_setAllowLinker", enable);
}
private function _linkTrackingObject(path:String):void{
_proxy.call(_linkTrackingObject_js, _jsContainer, path);
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
var param = 2;
if (((label) && (!((label == ""))))){
param = 3;
};
if ((((param == 3)) && (!(isNaN(value))))){
param = 4;
};
switch (param){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label, value));
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label));
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
return (_call("_trackEvent", category, action));
};
}
public function setClientInfo(enable:Boolean):void{
_debug.info((("setClientInfo( " + enable) + " )"));
_call("_setClientInfo", enable);
}
public function trackTrans():void{
_debug.info("trackTrans()");
_call("_trackTrans");
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_debug.info((("setCookieTimeout( " + newDefaultTimeout) + " )"));
_call("_setCookieTimeout", newDefaultTimeout);
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
_call("_trackPageview", pageURL);
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_call("_getClientInfo"));
}
private function _checkValidTrackingObject(account:String):Boolean{
return (_proxy.call(_checkValidTrackingObject_js, account));
}
private function _checkGAJS():Boolean{
return (_proxy.call(_checkGAJS_js));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning((((("linkByPost( " + formObject) + ", ") + useHash) + " ) not implemented"));
}
private function _call(functionName:String, ... _args){
_args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + functionName));
return (_proxy.call.apply(_proxy, _args));
}
public function hasGAJS():Boolean{
return (_checkGAJS());
}
private function _checkTrackingObject(account:String):Boolean{
var hasObj:Boolean = _proxy.hasProperty(account);
var isTracker:Boolean = _proxy.hasProperty((account + "._getAccount"));
return (((hasObj) && (isTracker)));
}
public function resetSession():void{
_debug.warning("resetSession() not implemented");
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_call("_getDetectTitle"));
}
public function setCampNameKey(newCampNameKey:String):void{
_debug.info((("setCampNameKey( " + newCampNameKey) + " )"));
_call("_setCampNameKey", newCampNameKey);
}
public function setDetectFlash(enable:Boolean):void{
_debug.info((("setDetectFlash( " + enable) + " )"));
_call("_setDetectFlash", enable);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_debug.info((("addItem( " + [item, sku, name, category, price, quantity].join(", ")) + " )"));
_call("_addItem", item, sku, name, category, price, quantity);
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_call("_clearIgnoreOrganic");
}
public function setVar(newVal:String):void{
_debug.info((("setVar( " + newVal) + " )"));
_call("_setVar", newVal);
}
public function setDomainName(newDomainName:String):void{
_debug.info((("setDomainName( " + newDomainName) + " )"));
_call("_setDomainName", newDomainName);
}
public function hasTrackingAccount(account:String):Boolean{
if (Utils.validateAccount(account)){
return (_checkValidTrackingObject(account));
};
return (_checkTrackingObject(account));
}
public function setCampSourceKey(newCampSrcKey:String):void{
_debug.info((("setCampSourceKey( " + newCampSrcKey) + " )"));
_call("_setCampSourceKey", newCampSrcKey);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):Object{
_debug.info((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " )"));
_call("_addTrans", orderId, affiliation, total, tax, shipping, city, state, country);
return (null);
}
public function setCampContentKey(newCampContentKey:String):void{
_debug.info((("setCampContentKey( " + newCampContentKey) + " )"));
_call("_setCampContentKey", newCampContentKey);
}
public function setLocalServerMode():void{
_debug.info("setLocalServerMode()");
_call("_setLocalServerMode");
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_call("_getLocalGifPath"));
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_call("_clearIgnoreRef");
}
public function setAllowAnchor(enable:Boolean):void{
_debug.info((("setAllowAnchor( " + enable) + " )"));
_call("_setAllowAnchor", enable);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_debug.info((("setLocalGifPath( " + newLocalGifPath) + " )"));
_call("_setLocalGifPath", newLocalGifPath);
}
public function getVersion():String{
_debug.info("getVersion()");
return (_call("_getVersion"));
}
private function _injectTrackingObject():void{
_proxy.executeBlock(_injectTrackingObject_js);
_hasGATracker = true;
}
public function setCookiePath(newCookiePath:String):void{
_debug.info((("setCookiePath( " + newCookiePath) + " )"));
_call("_setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
_debug.info((("setSampleRate( " + newRate) + " )"));
_call("_setSampleRate", newRate);
}
public function setAllowHash(enable:Boolean):void{
_debug.info((("setAllowHash( " + enable) + " )"));
_call("_setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_call("_addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
_debug.info((("setCampNOKey( " + newCampNOKey) + " )"));
_call("_setCampNOKey", newCampNOKey);
}
public function cookiePathCopy(newPath:String):void{
_debug.info((("cookiePathCopy( " + newPath) + " )"));
_call("_cookiePathCopy", newPath);
}
public function setLocalRemoteServerMode():void{
_debug.info("setLocalRemoteServerMode()");
_call("_setLocalRemoteServerMode");
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_call("_getServiceMode"));
}
public function setDetectTitle(enable:Boolean):void{
_debug.info((("setDetectTitle( " + enable) + " )"));
_call("_setDetectTitle", enable);
}
private function _createTrackingObject(account:String):void{
_proxy.call(_createTrackingObject_js, account);
}
public function setCampaignTrack(enable:Boolean):void{
_debug.info((("setCampaignTrack( " + enable) + " )"));
_call("_setCampaignTrack", enable);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_call("_clearOrganic");
}
public function setCampTermKey(newCampTermKey:String):void{
_debug.info((("setCampTermKey( " + newCampTermKey) + " )"));
_call("_setCampTermKey", newCampTermKey);
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_call("_getDetectFlash"));
}
public function setCampMediumKey(newCampMedKey:String):void{
_debug.info((("setCampMediumKey( " + newCampMedKey) + " )"));
_call("_setCampMediumKey", newCampMedKey);
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_call("_addIgnoredRef", newIgnoredReferrer);
}
public function setSessionTimeout(newTimeout:int):void{
_debug.info((("setSessionTimeout( " + newTimeout) + " )"));
_call("_setSessionTimeout", newTimeout);
}
public function setRemoteServerMode():void{
_debug.info("setRemoteServerMode()");
_call("_setRemoteServerMode");
}
public function getAccount():String{
_debug.info("getAccount()");
return (_call("_getAccount"));
}
}
}//package com.google.analytics.v4
Section 142
//Configuration (com.google.analytics.v4.Configuration)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.campaign.*;
public class Configuration {
public var serverMode:ServerOperationMode;
public var detectFlash:Boolean;// = true
public var hasSiteOverlay:Boolean;// = false
public var allowLocalTracking:Boolean;// = true
public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif"
private var _version:String;// = "4.3as"
public var allowDomainHash:Boolean;// = true
public var detectClientInfo:Boolean;// = true
public var idleLoop:Number;// = 30
public var isTrackOutboundSubdomains:Boolean;// = false
public var cookiePath:String;// = "/"
public var transactionFieldDelim:String;// = "|"
private var _organic:Organic;
private var _cookieName:String;// = "analytics"
public var campaignKey:CampaignKey;
public var google:String;// = "google"
public var googleCsePath:String;// = "cse"
public var bucketCapacity:Number;// = 10
private var _sampleRate:Number;// = 1
public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif"
public var googleSearchParam:String;// = "q"
public var allowLinker:Boolean;// = false
public var maxOutboundLinkExamined:Number;// = 1000
private var _debug:DebugConfiguration;
public var allowAnchor:Boolean;// = false
private var _domain:Domain;
private var _trackingLimitPerSession:int;// = 500
public var tokenCliff:int;// = 10
public var sessionTimeout:Number;
public var idleTimeout:Number;// = 60
public var campaignTracking:Boolean;// = true
public var domainName:String;// = ""
public var detectTitle:Boolean;// = true
public var tokenRate:Number;// = 0.2
public var conversionTimeout:Number;
public var localGIFpath:String;// = "/__utm.gif"
public function Configuration(debug:DebugConfiguration=null){
_organic = new Organic();
conversionTimeout = Timespan.sixmonths;
sessionTimeout = Timespan.thirtyminutes;
campaignKey = new CampaignKey();
serverMode = ServerOperationMode.remote;
super();
_debug = debug;
_domain = new Domain(DomainNameMode.auto, "", _debug);
serverMode = ServerOperationMode.remote;
_initOrganicSources();
}
public function get organic():Organic{
return (_organic);
}
public function get cookieName():String{
return (_cookieName);
}
public function get trackingLimitPerSession():int{
return (_trackingLimitPerSession);
}
private function _initOrganicSources():void{
addOrganicSource(google, googleSearchParam);
addOrganicSource("yahoo", "p");
addOrganicSource("msn", "q");
addOrganicSource("aol", "query");
addOrganicSource("aol", "encquery");
addOrganicSource("lycos", "query");
addOrganicSource("ask", "q");
addOrganicSource("altavista", "q");
addOrganicSource("netscape", "query");
addOrganicSource("cnn", "query");
addOrganicSource("looksmart", "qt");
addOrganicSource("about", "terms");
addOrganicSource("mamma", "query");
addOrganicSource("alltheweb", "q");
addOrganicSource("gigablast", "q");
addOrganicSource("voila", "rdata");
addOrganicSource("virgilio", "qs");
addOrganicSource("live", "q");
addOrganicSource("baidu", "wd");
addOrganicSource("alice", "qs");
addOrganicSource("yandex", "text");
addOrganicSource("najdi", "q");
addOrganicSource("aol", "q");
addOrganicSource("club-internet", "q");
addOrganicSource("mama", "query");
addOrganicSource("seznam", "q");
addOrganicSource("search", "q");
addOrganicSource("wp", "szukaj");
addOrganicSource("onet", "qt");
addOrganicSource("netsprint", "q");
addOrganicSource("google.interia", "q");
addOrganicSource("szukacz", "q");
addOrganicSource("yam", "k");
addOrganicSource("pchome", "q");
addOrganicSource("kvasir", "searchExpr");
addOrganicSource("sesam", "q");
addOrganicSource("ozu", "q");
addOrganicSource("terra", "query");
addOrganicSource("nostrum", "query");
addOrganicSource("mynet", "q");
addOrganicSource("ekolay", "q");
addOrganicSource("search.ilse", "search_for");
}
public function get sampleRate():Number{
return (_sampleRate);
}
public function addOrganicSource(engine:String, keyword:String):void{
var engine = engine;
var keyword = keyword;
_organic.addSource(engine, keyword);
//unresolved jump
var _slot1 = e;
if (((_debug) && (_debug.active))){
_debug.warning(_slot1.message);
};
}
public function get domain():Domain{
return (_domain);
}
public function set sampleRate(value:Number):void{
if (value <= 0){
value = 0.1;
};
if (value > 1){
value = 1;
};
value = Number(value.toFixed(2));
_sampleRate = value;
}
public function get version():String{
return (_version);
}
}
}//package com.google.analytics.v4
Section 143
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
public interface GoogleAnalyticsAPI {
function setCampSourceKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function getServiceMode():ServerOperationMode;
function resetSession():void;
function setLocalServerMode():void;
function setCampContentKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function addOrganic(_arg1:String, _arg2:String):void;
function setDetectFlash(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object;
function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean;
function setCampTermKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function setCampNameKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function addIgnoredOrganic(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void;
function setAllowLinker(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function getClientInfo():Boolean;
function getDetectFlash():Boolean;
function setCampaignTrack(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function createEventTracker(void:String):EventTracker;
function setCookieTimeout(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:int):void;
function setAllowAnchor(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function trackTrans():void;
function clearOrganic():void;
function trackPageview(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String=""):void;
function setLocalGifPath(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function getVersion():String;
function getLocalGifPath():String;
function setVar(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function clearIgnoredOrganic():void;
function setCampMediumKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function addIgnoredRef(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function setClientInfo(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function setCookiePath(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function setSampleRate(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Number):void;
function setSessionTimeout(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:int):void;
function setRemoteServerMode():void;
function clearIgnoredRef():void;
function setDomainName(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function setDetectTitle(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function setAllowHash(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:Boolean):void;
function getAccount():String;
function linkByPost(_arg1:Object, _arg2:Boolean=false):void;
function link(_arg1:String, _arg2:Boolean=false):void;
function setCampNOKey(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function setLocalRemoteServerMode():void;
function cookiePathCopy(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics/v4;GoogleAnalyticsAPI.as:String):void;
function getDetectTitle():Boolean;
}
}//package com.google.analytics.v4
Section 144
//Tracker (com.google.analytics.v4.Tracker)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
import com.google.analytics.campaign.*;
public class Tracker implements GoogleAnalyticsAPI {
private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3;
private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1;
private const EVENT_TRACKER_PROJECT_ID:int = 5;
private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1;
private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2;
private var _adSense:AdSenseGlobals;
private var _eventTracker:X10;
private var _noSessionInformation:Boolean;// = false
private var _browserInfo:BrowserInfo;
private var _debug:DebugConfiguration;
private var _isNewVisitor:Boolean;// = false
private var _buffer:Buffer;
private var _config:Configuration;
private var _x10Module:X10;
private var _campaign:CampaignManager;
private var _formatedReferrer:String;
private var _timeStamp:Number;
private var _info:Environment;
private var _domainHash:Number;
private var _campaignInfo:CampaignInfo;
private var _gifRequest:GIFRequest;
private var _hasInitData:Boolean;// = false
private var _account:String;
public function Tracker(account:String, config:Configuration, debug:DebugConfiguration, info:Environment, buffer:Buffer, gifRequest:GIFRequest, adSense:AdSenseGlobals){
var msg:String;
super();
_account = account;
_config = config;
_debug = debug;
_info = info;
_buffer = buffer;
_gifRequest = gifRequest;
_adSense = adSense;
if (!Utils.validateAccount(account)){
msg = (("Account \"" + account) + "\" is not valid.");
_debug.warning(msg);
throw (new Error(msg));
};
_initData();
}
private function _doTracking():Boolean{
if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){
return (true);
};
if (_config.allowLocalTracking){
return (true);
};
return (false);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_config.organic.addSource(newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
_config.allowLinker = enable;
_debug.info((("setAllowLinker( " + _config.allowLinker) + " )"));
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
var success:Boolean;
var params = 2;
if (((!((category == ""))) && (!((action == ""))))){
_eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID);
_eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, category);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, action);
if (((label) && (!((label == ""))))){
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, label);
params = 3;
if (!isNaN(value)){
success = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, value);
params = 4;
};
};
if (success){
_debug.info(((("valid event tracking call\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
_sendXEvent(_eventTracker);
};
} else {
_debug.warning(((("event tracking call is not valid, failed!\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
success = false;
};
switch (params){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
break;
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
break;
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
};
return (success);
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
if (_doTracking()){
_initData();
_trackMetrics(pageURL);
_noSessionInformation = false;
} else {
_debug.warning((("trackPageview( " + pageURL) + " ) failed"));
};
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_config.conversionTimeout = newDefaultTimeout;
_debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )"));
}
public function trackTrans():void{
_debug.warning("trackTrans() not implemented");
}
public function setClientInfo(enable:Boolean):void{
_config.detectClientInfo = enable;
_debug.info((("setClientInfo( " + _config.detectClientInfo) + " )"));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning((("linkByPost( " + [formObject, useHash].join(", ")) + " ) not implemented"));
}
private function _initData():void{
var data0:String;
var data:String;
if (!_hasInitData){
_updateDomainName();
_domainHash = _getDomainHash();
_timeStamp = Math.round((new Date().getTime() / 1000));
if (_debug.verbose){
data0 = "";
data0 = (data0 + "_initData 0");
data0 = (data0 + ("\ndomain name: " + _config.domainName));
data0 = (data0 + ("\ndomain hash: " + _domainHash));
data0 = (data0 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_doTracking()){
_handleCookie();
};
if (!_hasInitData){
if (_doTracking()){
_formatedReferrer = _formatReferrer();
_browserInfo = new BrowserInfo(_config, _info);
_debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced);
if (_config.campaignTracking){
_campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp);
_campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation);
_debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced);
};
};
_x10Module = new X10();
_eventTracker = new X10();
_hasInitData = true;
};
if (_config.hasSiteOverlay){
_debug.warning("Site Overlay is not supported");
};
if (_debug.verbose){
data = "";
data = (data + "_initData (misc)");
data = (data + ("\nflash version: " + _info.flashVersion.toString(4)));
data = (data + ("\nprotocol: " + _info.protocol));
data = (data + (("\ndefault domain name (auto): \"" + _info.domainName) + "\""));
data = (data + ("\nlanguage: " + _info.language));
data = (data + ("\ndomain hash: " + _getDomainHash()));
data = (data + ("\nuser-agent: " + _info.userAgent));
_debug.info(data, VisualDebugMode.geek);
};
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_config.detectTitle);
}
public function resetSession():void{
_debug.info("resetSession()");
_buffer.resetCurrentSession();
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_config.detectClientInfo);
}
private function _sendXEvent(opt_xObj:X10=null):void{
var searchVariables:Variables;
var eventInfo:EventInfo;
var eventvars:Variables;
var generalvars:Variables;
_initData();
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
eventInfo = new EventInfo(true, _x10Module, opt_xObj);
eventvars = eventInfo.toVariables();
generalvars = _renderMetricsSearchVariables();
searchVariables.join(eventvars, generalvars);
_gifRequest.send(_account, searchVariables, false, true);
};
}
public function setDetectFlash(enable:Boolean):void{
_config.detectFlash = enable;
_debug.info((("setDetectFlash( " + _config.detectFlash) + " )"));
}
public function setCampNameKey(newCampNameKey:String):void{
_config.campaignKey.UCCN = newCampNameKey;
var msg = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCN]"));
} else {
_debug.info(msg);
};
}
private function _formatReferrer():String{
var domainName:String;
var ref:URL;
var dom:URL;
var referrer:String = _info.referrer;
if ((((referrer == "")) || ((referrer == "localhost")))){
referrer = "-";
} else {
domainName = _info.domainName;
ref = new URL(referrer);
dom = new URL(("http://" + domainName));
if (ref.hostName == domainName){
return ("-");
};
if (dom.domain == ref.domain){
if (dom.subDomain != ref.subDomain){
referrer = "0";
};
};
if ((((referrer.charAt(0) == "[")) && (referrer.charAt((referrer.length - 1))))){
referrer = "-";
};
};
_debug.info(("formated referrer: " + referrer), VisualDebugMode.advanced);
return (referrer);
}
private function _visitCode():Number{
if (_debug.verbose){
_debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek);
};
return (_buffer.utma.sessionId);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_debug.warning((("addItem( " + [item, sku, name, category, price, quantity].join(", ")) + " ) not implemented"));
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_config.organic.clearIgnoredKeywords();
}
public function setVar(newVal:String):void{
var variables:Variables;
if (((!((newVal == ""))) && (_isNotGoogleSearch()))){
_initData();
_buffer.utmv.domainHash = _domainHash;
_buffer.utmv.value = newVal;
if (_debug.verbose){
_debug.info(_buffer.utmv.toString(), VisualDebugMode.geek);
};
_debug.info((("setVar( " + newVal) + " )"));
if (_takeSample()){
variables = new Variables();
variables.utmt = "var";
_gifRequest.send(_account, variables);
};
} else {
_debug.warning((("setVar \"" + newVal) + "\" is ignored"));
};
}
public function setDomainName(newDomainName:String):void{
if (newDomainName == "auto"){
_config.domain.mode = DomainNameMode.auto;
} else {
if (newDomainName == "none"){
_config.domain.mode = DomainNameMode.none;
} else {
_config.domain.mode = DomainNameMode.custom;
_config.domain.name = newDomainName;
};
};
_updateDomainName();
_debug.info((("setDomainName( " + _config.domainName) + " )"));
}
private function _updateDomainName():void{
var domainName:String;
if (_config.domain.mode == DomainNameMode.auto){
domainName = _info.domainName;
if (domainName.substring(0, 4) == "www."){
domainName = domainName.substring(4);
};
_config.domain.name = domainName;
};
_config.domainName = _config.domain.name.toLowerCase();
_debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):Object{
_debug.warning((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " ) not implemented"));
return (null);
}
private function _renderMetricsSearchVariables(pageURL:String=""):Variables{
var campvars:Variables;
var variables:Variables = new Variables();
variables.URIencode = true;
var docInfo:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, pageURL, _adSense);
_debug.info(("docInfo: " + docInfo.toURLString()), VisualDebugMode.geek);
if (_config.campaignTracking){
campvars = _campaignInfo.toVariables();
};
var browservars:Variables = _browserInfo.toVariables();
variables.join(docInfo.toVariables(), browservars, campvars);
return (variables);
}
public function setCampContentKey(newCampContentKey:String):void{
_config.campaignKey.UCCT = newCampContentKey;
var msg = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCT]"));
} else {
_debug.info(msg);
};
}
private function _handleCookie():void{
var data0:String;
var data1:String;
var vid:Array;
var data2:String;
if (_config.allowLinker){
};
if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){
if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){
_buffer.updateUTMA(_timeStamp);
_noSessionInformation = true;
};
if (_debug.verbose){
_debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek);
};
} else {
_debug.info("create a new utma", VisualDebugMode.advanced);
_buffer.utma.domainHash = _domainHash;
_buffer.utma.sessionId = _getUniqueSessionId();
_buffer.utma.firstTime = _timeStamp;
_buffer.utma.lastTime = _timeStamp;
_buffer.utma.currentTime = _timeStamp;
_buffer.utma.sessionCount = 1;
if (_debug.verbose){
_debug.info(_buffer.utma.toString(), VisualDebugMode.geek);
};
_noSessionInformation = true;
_isNewVisitor = true;
};
if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){
if (_adSense.sid){
_buffer.utma.currentTime = Number(_adSense.sid);
if (_debug.verbose){
data0 = "";
data0 = (data0 + "AdSense sid found\n");
data0 = (data0 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_isNewVisitor){
if (_adSense.sid){
_buffer.utma.lastTime = Number(_adSense.sid);
if (_debug.verbose){
data1 = "";
data1 = (data1 + "AdSense sid found (new visitor)\n");
data1 = (data1 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data1, VisualDebugMode.geek);
};
};
if (_adSense.vid){
vid = _adSense.vid.split(".");
_buffer.utma.sessionId = Number(vid[0]);
_buffer.utma.firstTime = Number(vid[1]);
if (_debug.verbose){
data2 = "";
data2 = (data2 + "AdSense vid found (new visitor)\n");
data2 = (data2 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(vid[0])) + ")\n"));
data2 = (data2 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(vid[1])) + ")"));
_debug.info(data2, VisualDebugMode.geek);
};
};
if (_debug.verbose){
_debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek);
};
};
};
_buffer.utmb.domainHash = _domainHash;
if (isNaN(_buffer.utmb.trackCount)){
_buffer.utmb.trackCount = 0;
};
if (isNaN(_buffer.utmb.token)){
_buffer.utmb.token = _config.tokenCliff;
};
if (isNaN(_buffer.utmb.lastTime)){
_buffer.utmb.lastTime = _buffer.utma.currentTime;
};
_buffer.utmc.domainHash = _domainHash;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced);
};
}
public function setLocalServerMode():void{
_config.serverMode = ServerOperationMode.local;
_debug.info("setLocalServerMode()");
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_config.organic.clearIgnoredReferrals();
}
public function setCampSourceKey(newCampSrcKey:String):void{
_config.campaignKey.UCSR = newCampSrcKey;
var msg = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCSR]"));
} else {
_debug.info(msg);
};
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_config.localGIFpath);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_config.localGIFpath = newLocalGifPath;
_debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )"));
}
public function getVersion():String{
_debug.info("getVersion()");
return (_config.version);
}
public function setAllowAnchor(enable:Boolean):void{
_config.allowAnchor = enable;
_debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )"));
}
private function _isNotGoogleSearch():Boolean{
var domainName:String = _config.domainName;
var g0 = (domainName.indexOf("www.google.") < 0);
var g1 = (domainName.indexOf(".google.") < 0);
var g2 = (domainName.indexOf("google.") < 0);
var g4 = (domainName.indexOf("google.org") > -1);
return (((((((((g0) || (g1))) || (g2))) || (!((_config.cookiePath == "/"))))) || (g4)));
}
public function setSampleRate(newRate:Number):void{
if (newRate < 0){
_debug.warning("sample rate can not be negative, ignoring value.");
} else {
_config.sampleRate = newRate;
};
_debug.info((("setSampleRate( " + _config.sampleRate) + " )"));
}
private function _takeSample():Boolean{
if (_debug.verbose){
_debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek);
};
return (((_visitCode() % 10000) < (_config.sampleRate * 10000)));
}
public function setCookiePath(newCookiePath:String):void{
_config.cookiePath = newCookiePath;
_debug.info((("setCookiePath( " + _config.cookiePath) + " )"));
}
public function setAllowHash(enable:Boolean):void{
_config.allowDomainHash = enable;
_debug.info((("setAllowHash( " + _config.allowDomainHash) + " )"));
}
private function _generateUserDataHash():Number{
var hash:String = "";
hash = (hash + _info.appName);
hash = (hash + _info.appVersion);
hash = (hash + _info.language);
hash = (hash + _info.platform);
hash = (hash + _info.userAgent.toString());
hash = (hash + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth));
hash = (hash + _info.referrer);
return (Utils.generateHash(hash));
}
public function setCampNOKey(newCampNOKey:String):void{
_config.campaignKey.UCNO = newCampNOKey;
var msg = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCNO]"));
} else {
_debug.info(msg);
};
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_config.organic.addIgnoredKeyword(newIgnoredOrganicKeyword);
}
public function setLocalRemoteServerMode():void{
_config.serverMode = ServerOperationMode.both;
_debug.info("setLocalRemoteServerMode()");
}
public function cookiePathCopy(newPath:String):void{
_debug.warning((("cookiePathCopy( " + newPath) + " ) not implemented"));
}
public function setDetectTitle(enable:Boolean):void{
_config.detectTitle = enable;
_debug.info((("setDetectTitle( " + _config.detectTitle) + " )"));
}
public function setCampTermKey(newCampTermKey:String):void{
_config.campaignKey.UCTR = newCampTermKey;
var msg = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCTR]"));
} else {
_debug.info(msg);
};
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_config.serverMode);
}
private function _trackMetrics(pageURL:String=""):void{
var searchVariables:Variables;
var x10vars:Variables;
var generalvars:Variables;
var eventInfo:EventInfo;
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
if (((_x10Module) && (_x10Module.hasData()))){
eventInfo = new EventInfo(false, _x10Module);
x10vars = eventInfo.toVariables();
};
generalvars = _renderMetricsSearchVariables(pageURL);
searchVariables.join(x10vars, generalvars);
_gifRequest.send(_account, searchVariables);
};
}
public function setCampaignTrack(enable:Boolean):void{
_config.campaignTracking = enable;
_debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )"));
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_config.organic.addIgnoredReferral(newIgnoredReferrer);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_config.organic.clearEngines();
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_config.detectFlash);
}
public function setCampMediumKey(newCampMedKey:String):void{
_config.campaignKey.UCMD = newCampMedKey;
var msg = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCMD]"));
} else {
_debug.info(msg);
};
}
private function _getUniqueSessionId():Number{
var sessionID:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647);
_debug.info(("Session ID: " + sessionID), VisualDebugMode.geek);
return (sessionID);
}
private function _getDomainHash():Number{
if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){
_config.domainName = "";
return (1);
};
_updateDomainName();
if (_config.allowDomainHash){
return (Utils.generateHash(_config.domainName));
};
return (1);
}
public function setSessionTimeout(newTimeout:int):void{
_config.sessionTimeout = newTimeout;
_debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )"));
}
public function getAccount():String{
_debug.info("getAccount()");
return (_account);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_debug.warning((("link( " + [targetUrl, useHash].join(", ")) + " ) not implemented"));
}
public function setRemoteServerMode():void{
_config.serverMode = ServerOperationMode.remote;
_debug.info("setRemoteServerMode()");
}
}
}//package com.google.analytics.v4
Section 145
//AnalyticsTracker (com.google.analytics.AnalyticsTracker)
package com.google.analytics {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher {
function set account(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics;AnalyticsTracker.as:String):void;
function get config():Configuration;
function get mode():String;
function set config(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics;AnalyticsTracker.as:Configuration):void;
function set mode(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics;AnalyticsTracker.as:String):void;
function set debug(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics;AnalyticsTracker.as:DebugConfiguration):void;
function get visualDebug():Boolean;
function get account():String;
function set visualDebug(/buRRRn/projects/GAforFlash/GA_AS3/build/tmp;com/google/analytics;AnalyticsTracker.as:Boolean):void;
function isReady():Boolean;
function get debug():DebugConfiguration;
}
}//package com.google.analytics
Section 146
//API (com.google.analytics.API)
package com.google.analytics {
import com.google.analytics.utils.*;
public class API {
public static var version:Version = new Version();
public function API(){
super();
}
version.major = 1;
version.minor = 0;
version.build = 1;
version.revision = "$Rev: 319 $ ".split(" ")[1];
}
}//package com.google.analytics
Section 147
//GATracker (com.google.analytics.GATracker)
package com.google.analytics {
import flash.display.*;
import flash.events.*;
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.events.*;
public class GATracker implements AnalyticsTracker {
private var _adSense:AdSenseGlobals;
private var _env:Environment;
private var _visualDebug:Boolean;
private var _idleTimer:IdleTimer;
private var _debug:DebugConfiguration;
private var _buffer:Buffer;
private var _config:Configuration;
private var _mode:String;
private var _display:DisplayObject;
private var _jsproxy:JavascriptProxy;
private var _dom:HTMLDOM;
private var _eventDispatcher:EventDispatcher;
private var _ready:Boolean;// = false
private var _gifRequest:GIFRequest;
private var _account:String;
private var _tracker:GoogleAnalyticsAPI;
public static var version:Version = API.version;
public static var autobuild:Boolean = true;
public function GATracker(display:DisplayObject, account:String, mode:String="AS3", visualDebug:Boolean=false, config:Configuration=null, debug:DebugConfiguration=null){
super();
_display = display;
_eventDispatcher = new EventDispatcher(this);
_tracker = new TrackerCache();
this.account = account;
this.mode = mode;
this.visualDebug = visualDebug;
if (!debug){
this.debug = new DebugConfiguration();
};
if (!config){
this.config = new Configuration(debug);
};
if (autobuild){
_factory();
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_tracker.link(targetUrl, useHash);
}
public function addOrganic(Layout:String, Layout:String):void{
_tracker.addOrganic(Layout, Layout);
}
public function setAllowLinker(enable:Boolean):void{
_tracker.setAllowLinker(enable);
}
public function trackEvent(TrackerCache:String, TrackerCache:String, TrackerCache:String=null, TrackerCache:Number=NaN):Boolean{
return (_tracker.trackEvent(TrackerCache, TrackerCache, TrackerCache, TrackerCache));
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_tracker.setCookieTimeout(newDefaultTimeout);
}
public function trackTrans():void{
_tracker.trackTrans();
}
public function getClientInfo():Boolean{
return (_tracker.getClientInfo());
}
public function trackPageview(pageURL:String=""):void{
_tracker.trackPageview(pageURL);
}
public function setClientInfo(Layout:Boolean):void{
_tracker.setClientInfo(Layout);
}
public function get account():String{
return (_account);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_tracker.linkByPost(formObject, useHash);
}
public function getDetectTitle():Boolean{
return (_tracker.getDetectTitle());
}
public function dispatchEvent(event:Event):Boolean{
return (_eventDispatcher.dispatchEvent(event));
}
public function get config():Configuration{
return (_config);
}
public function set mode(value:String):void{
_mode = value;
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
_eventDispatcher.removeEventListener(type, listener, useCapture);
}
public function setDetectFlash(Layout:Boolean):void{
_tracker.setDetectFlash(Layout);
}
public function resetSession():void{
_tracker.resetSession();
}
public function setCampNameKey(newCampNameKey:String):void{
_tracker.setCampNameKey(newCampNameKey);
}
public function get debug():DebugConfiguration{
return (_debug);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_tracker.addItem(item, sku, name, category, price, quantity);
}
private function _bridgeFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account));
return (new Bridge(account, _debug, _jsproxy));
}
public function clearIgnoredOrganic():void{
_tracker.clearIgnoredOrganic();
}
public function set account(value:String):void{
_account = value;
}
public function setVar(newVal:String):void{
_tracker.setVar(newVal);
}
public function build():void{
if (!isReady()){
_factory();
};
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
_eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public function setDomainName(newDomainName:String):void{
_tracker.setDomainName(newDomainName);
}
public function createEventTracker(listener:String):EventTracker{
return (_tracker.createEventTracker(listener));
}
public function setCampSourceKey(newCampSrcKey:String):void{
_tracker.setCampSourceKey(newCampSrcKey);
}
public function set config(value:Configuration):void{
_config = value;
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):Object{
return (_tracker.addTrans(orderId, affiliation, total, tax, shipping, city, state, country));
}
public function setCampContentKey(newCampContentKey:String):void{
_tracker.setCampContentKey(newCampContentKey);
}
public function willTrigger(type:String):Boolean{
return (_eventDispatcher.willTrigger(type));
}
public function setLocalServerMode():void{
_tracker.setLocalServerMode();
}
public function getLocalGifPath():String{
return (_tracker.getLocalGifPath());
}
public function setAllowAnchor(enable:Boolean):void{
_tracker.setAllowAnchor(enable);
}
public function clearIgnoredRef():void{
_tracker.clearIgnoredRef();
}
public function isReady():Boolean{
return (_ready);
}
public function get mode():String{
return (_mode);
}
public function set debug(value:DebugConfiguration):void{
_debug = value;
}
public function setLocalGifPath(Layout:String):void{
_tracker.setLocalGifPath(Layout);
}
public function getVersion():String{
return (_tracker.getVersion());
}
public function setSampleRate(newRate:Number):void{
_tracker.setSampleRate(newRate);
}
public function setCookiePath(newCookiePath:String):void{
_tracker.setCookiePath(newCookiePath);
}
public function setAllowHash(enable:Boolean):void{
_tracker.setAllowHash(enable);
}
public function addIgnoredOrganic(Layout:String):void{
_tracker.addIgnoredOrganic(Layout);
}
public function setLocalRemoteServerMode():void{
_tracker.setLocalRemoteServerMode();
}
public function cookiePathCopy(newPath:String):void{
_tracker.cookiePathCopy(newPath);
}
private function _factory():void{
var activeTracker:GoogleAnalyticsAPI;
_jsproxy = new JavascriptProxy(debug);
if (visualDebug){
debug.layout = new Layout(debug, _display);
debug.active = visualDebug;
};
var cache:TrackerCache = (_tracker as TrackerCache);
switch (mode){
case TrackerMode.BRIDGE:
activeTracker = _bridgeFactory();
break;
case TrackerMode.AS3:
default:
activeTracker = _trackerFactory();
};
if (!cache.isEmpty()){
cache.tracker = activeTracker;
cache.flush();
};
_tracker = activeTracker;
_ready = true;
dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this));
}
public function setCampTermKey(newCampTermKey:String):void{
_tracker.setCampTermKey(newCampTermKey);
}
private function _trackerFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account));
_adSense = new AdSenseGlobals(debug);
_dom = new HTMLDOM(debug);
_dom.cacheProperties();
_env = new Environment("", "", "", debug, _dom);
_buffer = new Buffer(config, debug, false);
_gifRequest = new GIFRequest(config, debug, _buffer, _env);
_idleTimer = new IdleTimer(config, debug, _display, _buffer);
_env.url = _display.stage.loaderInfo.url;
return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense));
}
public function setCampNOKey(newCampNOKey:String):void{
_tracker.setCampNOKey(newCampNOKey);
}
public function setDetectTitle(Layout:Boolean):void{
_tracker.setDetectTitle(Layout);
}
public function getServiceMode():ServerOperationMode{
return (_tracker.getServiceMode());
}
public function clearOrganic():void{
_tracker.clearOrganic();
}
public function setCampaignTrack(enable:Boolean):void{
_tracker.setCampaignTrack(enable);
}
public function addIgnoredRef(Layout:String):void{
_tracker.addIgnoredRef(Layout);
}
public function set visualDebug(value:Boolean):void{
_visualDebug = value;
}
public function setCampMediumKey(newCampMedKey:String):void{
_tracker.setCampMediumKey(newCampMedKey);
}
public function getDetectFlash():Boolean{
return (_tracker.getDetectFlash());
}
public function get visualDebug():Boolean{
return (_visualDebug);
}
public function hasEventListener(type:String):Boolean{
return (_eventDispatcher.hasEventListener(type));
}
public function getAccount():String{
return (_tracker.getAccount());
}
public function setSessionTimeout(newTimeout:int):void{
_tracker.setSessionTimeout(newTimeout);
}
public function setRemoteServerMode():void{
_tracker.setRemoteServerMode();
}
}
var _local1:* = ServerOperationMode;
return (_local1);
}//package com.google.analytics
Section 148
//AwardsService (com.spilgames.api.AwardsService)
package com.spilgames.api {
public class AwardsService {
public function AwardsService(){
super();
}
public static function submitAward(awardTag:String, callback:Function=null):int{
return (SpilGamesServices.getInstance().send("Awards", "submitAward", callback, {tag:awardTag, userName:User.getUserName(), userHash:User.getUserHash()}));
}
public static function isAvailable():Boolean{
return (SpilGamesServices.getInstance().isServiceAvailable("Awards"));
}
}
}//package com.spilgames.api
Section 149
//ScoreService (com.spilgames.api.ScoreService)
package com.spilgames.api {
public class ScoreService {
public function ScoreService(){
super();
}
public static function submitScore(score:int, callback:Function=null):int{
return (SpilGamesServices.getInstance().send("Score", "submitScore", callback, {score:score, userName:User.getUserName(), userHash:User.getUserHash()}));
}
public static function isAvailable():Boolean{
return (SpilGamesServices.getInstance().isServiceAvailable("Score"));
}
}
}//package com.spilgames.api
Section 150
//SpilGamesServices (com.spilgames.api.SpilGamesServices)
package com.spilgames.api {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class SpilGamesServices extends MovieClip {
private const DEFAULT_CONNECTION_LOCATION:String = "http://www8.agame.com/games/flash/services/ServicesConnection.swf";
private var _connected:Boolean;// = false
private var _connecting:Boolean;// = false
private var _loader:Loader;
private var _servicesConnection;// = null
private var _alwaysInFront:Boolean;// = false
public static const INVALID_ID:int = -1;
public static const CONFIGURATION_FAILED:String = "configurationFailure";
public static const INVALID_DOMAIN:String = "invalidDomain";
private static var _instance:SpilGamesServices = null;
public function SpilGamesServices(access:Private=null){
super();
if (!access){
throw (new Error("Cannot instantiate this class, use SpilGamesServices.getInstance"));
};
}
private function handleRemovedFromStage(e:Event):void{
trace("WARNING: please do not remove SpilGamesServices from the stage");
}
private function handleLoadComplete(e:Event):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_servicesConnection = LoaderInfo(e.target).content;
_servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.addEventListener("serviceError", handleServiceError);
addChild(_servicesConnection);
}
public function send(serviceID:String, functionName:String, callback:Function, args:Object=null):int{
if (isReady()){
return (_servicesConnection.send(serviceID, functionName, callback, args));
};
return (INVALID_ID);
}
private function handleServicesFailed(e:ErrorEvent):void{
_servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.addEventListener("serviceError", handleServiceError);
_connecting = false;
if (hasEventListener("servicesFailed")){
dispatchEvent(new ErrorEvent("servicesFailed", false, false, e.text));
};
}
public function get version():String{
return ("1.1");
}
public function isReady():Boolean{
return (((!((_servicesConnection == null))) && (_servicesConnection.isReady())));
}
private function handleIOError(e:IOErrorEvent):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_connecting = false;
if (hasEventListener(e.type)){
dispatchEvent(e);
};
}
private function handleServiceError(e:Event):void{
var message:String;
if (hasEventListener("serviceError")){
message = "";
if ((e is ErrorEvent)){
message = ErrorEvent(e).text;
} else {
message = e.toString();
};
dispatchEvent(new ErrorEvent("serviceError", false, false, message));
};
}
public function disconnect():void{
if (_servicesConnection){
_servicesConnection.removeEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.removeEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.removeEventListener("serviceError", handleServiceError);
if (_connected){
_servicesConnection.disconnect();
};
removeChild(_servicesConnection);
};
_servicesConnection = null;
if (_loader){
try {
_loader.close();
//unresolved jump
var _slot1 = e;
} finally {
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
};
_loader = null;
};
removeEventListener(Event.ENTER_FRAME, bringToFront);
removeEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage);
if (parent){
parent.removeChild(this);
};
_connected = (_connecting = false);
}
private function handleServicesReady(e:Event):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_connected = true;
_connecting = false;
dispatchEvent(new Event("servicesReady"));
}
public function get connection(){
return (_servicesConnection);
}
public function getSiteID():int{
if (_servicesConnection != null){
return (_servicesConnection.getSiteID());
};
return (INVALID_ID);
}
public function isServiceAvailable(serviceID:String):Boolean{
return (((isReady()) && (_servicesConnection.isServiceAvailable(serviceID))));
}
public function getChannelID():int{
if (_servicesConnection != null){
return (_servicesConnection.getChannelID());
};
return (INVALID_ID);
}
public function set alwaysInFront(value:Boolean):void{
if (_alwaysInFront != value){
_alwaysInFront = value;
if (_alwaysInFront){
addEventListener(Event.ENTER_FRAME, bringToFront);
} else {
removeEventListener(Event.ENTER_FRAME, bringToFront);
};
};
}
public function getItemID():int{
if (_servicesConnection != null){
return (_servicesConnection.getItemID());
};
return (INVALID_ID);
}
public function allowDomain(domain:String):void{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
}
public function connect(clip:DisplayObjectContainer, ... _args):void{
var request:URLRequest;
var connectionLocation:String;
var context:LoaderContext;
var urlVariables:URLVariables;
var date:Date;
if (((!(_connecting)) && (!(_connected)))){
if (!clip.stage){
throw (new Error("The given clip must be present in the display list (added to stage)"));
};
_connecting = true;
clip.stage.addChild(this);
addEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage);
if (((root.loaderInfo.parameters["servicesLoc"]) && ((root.loaderInfo.parameters["servicesLoc"].length > 0)))){
connectionLocation = root.loaderInfo.parameters["servicesLoc"];
request = new URLRequest(connectionLocation);
} else {
connectionLocation = DEFAULT_CONNECTION_LOCATION;
urlVariables = new URLVariables();
date = new Date();
urlVariables.nocache = ((((date.fullYear * 12) + (date.month + 1)) * 31) + date.day);
request = new URLRequest(connectionLocation);
request.data = urlVariables;
};
allowDomain(connectionLocation);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
context = new LoaderContext();
context.applicationDomain = new ApplicationDomain();
_loader.load(request, context);
};
}
public function get alwaysInFront():Boolean{
return (_alwaysInFront);
}
public function get connecting():Boolean{
return (_connecting);
}
public function isDomainAllowed():Boolean{
return (((!((_servicesConnection == null))) && (_servicesConnection.isDomainValid())));
}
public function bringToFront(e:Event=null):void{
var e = e;
if (parent){
parent.setChildIndex(this, (parent.numChildren - 1));
//unresolved jump
var _slot1 = e;
removeEventListener(Event.ENTER_FRAME, bringToFront);
};
}
public static function getInstance():SpilGamesServices{
if (!_instance){
_instance = new SpilGamesServices(new Private());
};
return (_instance);
}
}
}//package com.spilgames.api
class Private {
private function Private(){
super();
}
}
Section 151
//User (com.spilgames.api.User)
package com.spilgames.api {
import flash.display.*;
public class User {
public function User(){
super();
}
public static function getUserName():String{
var connection:* = SpilGamesServices.getInstance().connection;
if (connection != null){
return (connection.getUserName());
};
return ("");
}
public static function isGuest():Boolean{
var root:DisplayObject;
var vars:Object;
var connection:* = SpilGamesServices.getInstance().connection;
if (connection != null){
return (connection.isGuest());
};
root = SpilGamesServices.getInstance().root;
if (root.loaderInfo != null){
vars = root.loaderInfo.parameters;
return (((((((!(vars.username)) || ((vars.username == "")))) || (!(vars.hash)))) || ((vars.hash == ""))));
};
return (false);
}
public static function getUserHash():String{
var connection:* = SpilGamesServices.getInstance().connection;
if (connection != null){
return (connection.getUserHash());
};
return ("");
}
}
}//package com.spilgames.api
Section 152
//animation__4 (export_fla.animation__4)
package export_fla {
import flash.display.*;
public dynamic class animation__4 extends MovieClip {
public function animation__4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 153
//animation_Levelup_17 (export_fla.animation_Levelup_17)
package export_fla {
import flash.display.*;
public dynamic class animation_Levelup_17 extends MovieClip {
public function animation_Levelup_17(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 154
//animation_Notrunsleft_19 (export_fla.animation_Notrunsleft_19)
package export_fla {
import flash.display.*;
public dynamic class animation_Notrunsleft_19 extends MovieClip {
public function animation_Notrunsleft_19(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 155
//btn__27 (export_fla.btn__27)
package export_fla {
import flash.display.*;
public dynamic class btn__27 extends MovieClip {
public function btn__27(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 156
//btn__31 (export_fla.btn__31)
package export_fla {
import flash.display.*;
public dynamic class btn__31 extends MovieClip {
public function btn__31(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 157
//btn__37 (export_fla.btn__37)
package export_fla {
import flash.display.*;
public dynamic class btn__37 extends MovieClip {
public function btn__37(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 158
//btn_shuffle_25 (export_fla.btn_shuffle_25)
package export_fla {
import flash.display.*;
public dynamic class btn_shuffle_25 extends MovieClip {
public function btn_shuffle_25(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 159
//btn_start_232 (export_fla.btn_start_232)
package export_fla {
import flash.display.*;
public dynamic class btn_start_232 extends MovieClip {
public var txt:txt_start;
public function btn_start_232(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 160
//btn_startgame_193 (export_fla.btn_startgame_193)
package export_fla {
import flash.display.*;
public dynamic class btn_startgame_193 extends MovieClip {
public function btn_startgame_193(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 161
//empty_189 (export_fla.empty_189)
package export_fla {
import flash.display.*;
public dynamic class empty_189 extends MovieClip {
public function empty_189(){
addFrameScript(0, frame1);
}
function frame1(){
this.visible = false;
}
}
}//package export_fla
Section 162
//icon__29 (export_fla.icon__29)
package export_fla {
import flash.display.*;
public dynamic class icon__29 extends MovieClip {
public function icon__29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 163
//icon__33 (export_fla.icon__33)
package export_fla {
import flash.display.*;
public dynamic class icon__33 extends MovieClip {
public function icon__33(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 164
//icon__35 (export_fla.icon__35)
package export_fla {
import flash.display.*;
public dynamic class icon__35 extends MovieClip {
public function icon__35(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 165
//mainmenu_199 (export_fla.mainmenu_199)
package export_fla {
import flash.display.*;
public dynamic class mainmenu_199 extends MovieClip {
public function mainmenu_199(){
addFrameScript(808, frame809, 1019, frame1020);
}
function frame809(){
gotoAndPlay("pp");
}
function frame1020(){
gotoAndPlay(600);
}
}
}//package export_fla
Section 166
//scoreEff1_12 (export_fla.scoreEff1_12)
package export_fla {
import flash.display.*;
public dynamic class scoreEff1_12 extends MovieClip {
public var m1:MovieClip;
public var m2:MovieClip;
public function scoreEff1_12(){
addFrameScript(13, frame14);
}
function frame14(){
stop();
}
}
}//package export_fla
Section 167
//Timeline_14 (export_fla.Timeline_14)
package export_fla {
import flash.display.*;
public dynamic class Timeline_14 extends MovieClip {
public function Timeline_14(){
addFrameScript(13, frame14);
}
function frame14(){
stop();
}
}
}//package export_fla
Section 168
//txt_moregames_202 (export_fla.txt_moregames_202)
package export_fla {
import flash.display.*;
public dynamic class txt_moregames_202 extends MovieClip {
public function txt_moregames_202(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package export_fla
Section 169
//LivePreviewParent (fl.livepreview.LivePreviewParent)
package fl.livepreview {
import flash.display.*;
import flash.utils.*;
import flash.external.*;
public class LivePreviewParent extends MovieClip {
public var myInstance:DisplayObject;
public function LivePreviewParent(){
super();
try {
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
this.myInstance = getChildAt(0);
this.onResize(stage.width, stage.height);
if (ExternalInterface.available){
ExternalInterface.addCallback("onResize", this.onResize);
ExternalInterface.addCallback("onUpdate", this.onUpdate);
};
} catch(e) {
};
}
public function onUpdate(... _args):void{
var name:String;
var value:*;
var updateArray = _args;
var i:int;
while ((i + 1) < updateArray.length) {
try {
name = String(updateArray[i]);
value = updateArray[(i + 1)];
if ((((typeof(value) == "object")) && (value.__treatAsCollectionSpecialSauce__))){
this.updateCollection(value, name);
} else {
this.myInstance[name] = value;
};
} catch(e:Error) {
};
i = (i + 2);
};
}
public function onResize(_arg1:Number, _arg2:Number):void{
var width = _arg1;
var height = _arg2;
var setSizeFn:Function;
try {
setSizeFn = this.myInstance["setSize"];
} catch(e:Error) {
setSizeFn = null;
};
if (setSizeFn != null){
setSizeFn(width, height);
} else {
this.myInstance.width = width;
this.myInstance.height = height;
};
}
private function updateCollection(_arg1:Object, _arg2:String):void{
var _local7:Object;
var _local8:Object;
var _local9:*;
var _local3:Class = Class(getDefinitionByName(_arg1.collectionClass));
var _local4:Class = Class(getDefinitionByName(_arg1.collectionItemClass));
var _local5:Object = new (_local3);
var _local6:int;
while (_local6 < _arg1.collectionArray.length) {
_local7 = new (_local4);
_local8 = _arg1.collectionArray[_local6];
for (_local9 in _local8) {
_local7[_local9] = _local8[_local9];
};
_local5.addItem(_local7);
_local6++;
};
this.myInstance[_arg2] = (_local5 as _local3);
}
}
}//package fl.livepreview
Section 170
//Stats (net.hires.debug.Stats)
package net.hires.debug {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.system.*;
public class Stats extends Sprite {
protected const WIDTH:uint = 70;
protected const HEIGHT:uint = 100;
protected var xml:XML;
protected var text:TextField;
protected var style:StyleSheet;
protected var timer:uint;
protected var fps:uint;
protected var ms:uint;
protected var ms_prev:uint;
protected var mem:Number;
protected var mem_max:Number;
protected var graph:Bitmap;
protected var rectangle:Rectangle;
protected var fps_graph:uint;
protected var mem_graph:uint;
protected var mem_max_graph:uint;
protected var theme:Object;
public function Stats(_theme:Object=null):void{
this.theme = {bg:51, fps:0xFFFF00, ms:0xFF00, mem:0xFFFF, memmax:0xFF0070};
super();
this.mouseChildren = false;
this.mouseEnabled = false;
if (_theme){
if (_theme.bg != null){
this.theme.bg = _theme.bg;
};
if (_theme.fps != null){
this.theme.fps = _theme.fps;
};
if (_theme.ms != null){
this.theme.ms = _theme.ms;
};
if (_theme.mem != null){
this.theme.mem = _theme.mem;
};
if (_theme.memmax != null){
this.theme.memmax = _theme.memmax;
};
};
this.mem_max = 0;
this.xml = <xml><fps>FPS:</fps><ms>MS:</ms><mem>MEM:</mem><memMax>MAX:</memMax></xml>
;
this.style = new StyleSheet();
this.style.setStyle("xml", {fontSize:"9px", fontFamily:"_sans", leading:"-2px"});
this.style.setStyle("fps", {color:this.hex2css(this.theme.fps)});
this.style.setStyle("ms", {color:this.hex2css(this.theme.ms)});
this.style.setStyle("mem", {color:this.hex2css(this.theme.mem)});
this.style.setStyle("memMax", {color:this.hex2css(this.theme.memmax)});
this.text = new TextField();
this.text.width = this.WIDTH;
this.text.height = 50;
this.text.styleSheet = this.style;
this.text.condenseWhite = true;
this.text.selectable = false;
this.text.mouseEnabled = false;
this.graph = new Bitmap();
this.graph.alpha = 0.3;
this.graph.y = 50;
this.rectangle = new Rectangle((this.WIDTH - 1), 0, 1, (this.HEIGHT - 50));
addEventListener(Event.ADDED_TO_STAGE, this.init, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, this.destroy, false, 0, true);
}
private function init(e:Event):void{
graphics.beginFill(this.theme.bg, 0.3);
graphics.drawRect(0, 0, this.WIDTH, this.HEIGHT);
graphics.endFill();
addChild(this.text);
this.graph.bitmapData = new BitmapData(this.WIDTH, (this.HEIGHT - 50), false, this.theme.bg);
addChild(this.graph);
addEventListener(Event.ENTER_FRAME, this.update);
}
private function destroy(e:Event):void{
graphics.clear();
while (numChildren > 0) {
removeChildAt(0);
};
this.graph.bitmapData.dispose();
removeEventListener(Event.ENTER_FRAME, this.update);
}
private function update(e:Event):void{
this.timer = getTimer();
if ((this.timer - 1000) > this.ms_prev){
this.ms_prev = this.timer;
this.mem = Number((System.totalMemory * 9.54E-7).toFixed(3));
this.mem_max = ((this.mem_max > this.mem)) ? this.mem_max : this.mem;
this.fps_graph = Math.min(this.graph.height, ((this.fps / stage.frameRate) * this.graph.height));
this.mem_graph = (Math.min(this.graph.height, Math.sqrt(Math.sqrt((this.mem * 5000)))) - 2);
this.mem_max_graph = (Math.min(this.graph.height, Math.sqrt(Math.sqrt((this.mem_max * 5000)))) - 2);
this.graph.bitmapData.scroll(-1, 0);
this.graph.bitmapData.fillRect(this.rectangle, this.theme.bg);
this.graph.bitmapData.setPixel((this.graph.width - 1), (this.graph.height - this.fps_graph), this.theme.fps);
this.graph.bitmapData.setPixel((this.graph.width - 1), (this.graph.height - ((this.timer - this.ms) >> 1)), this.theme.ms);
this.graph.bitmapData.setPixel((this.graph.width - 1), (this.graph.height - this.mem_graph), this.theme.mem);
this.graph.bitmapData.setPixel((this.graph.width - 1), (this.graph.height - this.mem_max_graph), this.theme.memmax);
this.xml.fps = ((("FPS: " + this.fps) + " / ") + stage.frameRate);
this.xml.mem = ("MEM: " + this.mem);
this.xml.memMax = ("MAX: " + this.mem_max);
this.fps = 0;
};
this.fps++;
this.xml.ms = ("MS: " + (this.timer - this.ms));
this.ms = this.timer;
this.text.htmlText = this.xml;
}
private function onClick(e:MouseEvent):void{
if (((mouseY / height) > 0.5)){
stage.frameRate--;
} else {
stage.frameRate++;
};
this.xml.fps = ((("FPS: " + this.fps) + " / ") + stage.frameRate);
this.text.htmlText = this.xml;
}
private function hex2css(color:int):String{
return (("#" + color.toString(16)));
}
}
}//package net.hires.debug
Section 171
//Youwillalsos (txt_Thistellsyouhowmanyturnsyouhaveleft.Youwillalsos)
package txt_Thistellsyouhowmanyturnsyouhaveleft {
import zlong.display.*;
public dynamic class Youwillalsos extends TranText {
}
}//package txt_Thistellsyouhowmanyturnsyouhaveleft
Section 172
//GC (zlong.breathxue.utils.debug.GC)
package zlong.breathxue.utils.debug {
import flash.net.*;
public class GC {
breathxue_utils_internal static const VERSION:String = "v1.15.201008201148";
public static function clear():void{
new LocalConnection().connect("haha");
new LocalConnection().connect("haha");
//unresolved jump
var _slot1 = error;
}
}
}//package zlong.breathxue.utils.debug
Section 173
//TcShow (zlong.breathxue.utils.debug.TcShow)
package zlong.breathxue.utils.debug {
public var TcShow:Boolean = false;
}//package zlong.breathxue.utils.debug
Section 174
//mVector (zlong.breathxue.utils.math.mVector)
package zlong.breathxue.utils.math {
import zlong.breathxue.utils.*;
public class mVector {
public var x:Number;
public var y:Number;
breathxue_utils_internal static const VERSION:String = "v1.15.201008201148";
public static var PI_OVER_ONE_EIGHTY:Number = 0.0174532925199433;
public function mVector(px:Number=0, py:Number=0){
super();
this.x = px;
this.y = py;
}
public function setTo(px:Number, py:Number):void{
this.x = px;
this.y = py;
}
public function copyFrom(v:mVector):mVector{
this.x = v.x;
this.y = v.y;
return (this);
}
public function toString():String{
var rx:Number = (Math.round((this.x * 1000)) / 1000);
var ry:Number = (Math.round((this.y * 1000)) / 1000);
return ((((("[" + rx) + ", ") + ry) + "]"));
}
public function clone():mVector{
return (new mVector(this.x, this.y));
}
public function plus(v:mVector):mVector{
return (new mVector((this.x + v.x), (this.y + v.y)));
}
public function plusEquals(v:mVector):mVector{
this.x = (this.x + v.x);
this.y = (this.y + v.y);
return (this);
}
public function minus(v:mVector):mVector{
return (new mVector((this.x - v.x), (this.y - v.y)));
}
public function minusEquals(v:mVector):mVector{
this.x = (this.x - v.x);
this.y = (this.y - v.y);
return (this);
}
public function negate():mVector{
return (new mVector(-(this.x), -(this.y)));
}
public function negateEquals():void{
this.x = -(this.x);
this.y = -(this.y);
}
public function mult(s:Number):mVector{
return (new mVector((this.x * s), (this.y * s)));
}
public function multEquals(s:Number):mVector{
this.x = (this.x * s);
this.y = (this.y * s);
return (this);
}
public function rotateAngle(ang:Number):mVector{
var cos:Number = TF_Class.cosD(ang);
var sin:Number = TF_Class.sinD(ang);
var result:mVector = new mVector(((this.x * cos) - (this.y * sin)), ((this.y * cos) + (this.x * sin)));
return (result);
}
public function rotateAngleEquals(ang:Number):mVector{
return (this.copyFrom(this.rotateAngle(ang)));
}
public function rotateAngleForTarget(ang:Number, targetPoint:mVector):mVector{
var tempVector:mVector = this.minus(targetPoint);
var cos:Number = TF_Class.cosD(ang);
var sin:Number = TF_Class.sinD(ang);
var tempResult:mVector = new mVector(((tempVector.x * cos) - (tempVector.y * sin)), ((tempVector.y * cos) + (tempVector.x * sin)));
var result:mVector = tempResult.plus(targetPoint);
return (result);
}
public function rotateAngleForTargetEquals(ang:Number, targetPoint:mVector):mVector{
return (this.copyFrom(this.rotateAngleForTarget(ang, targetPoint)));
}
public function rotateRadian(radian:Number):mVector{
var cos:Number = Math.cos(radian);
var sin:Number = Math.sin(radian);
var result:mVector = new mVector(((this.x * cos) - (this.y * sin)), ((this.y * cos) + (this.x * sin)));
return (result);
}
public function rotateRadianEquals(radian:Number):mVector{
return (this.copyFrom(this.rotateRadian(radian)));
}
public function rotateRadianForTarget(radian:Number, targetPoint:mVector):mVector{
var tempVector:mVector = this.minus(targetPoint);
var cos:Number = Math.cos(radian);
var sin:Number = Math.sin(radian);
var tempResult:mVector = new mVector(((tempVector.x * cos) - (tempVector.y * sin)), ((tempVector.y * cos) + (tempVector.x * sin)));
var result:mVector = tempResult.plus(targetPoint);
return (result);
}
public function rotateRadianForTargetEquals(radian:Number, targetPoint:mVector):mVector{
return (this.copyFrom(this.rotateRadianForTarget(radian, targetPoint)));
}
public function dot(v:mVector):Number{
return (((this.x * v.x) + (this.y * v.y)));
}
public function cross(v:mVector):Number{
return (((this.x * v.y) - (this.y * v.x)));
}
public function times(v:mVector):mVector{
return (new mVector((this.x * v.x), (this.y * v.y)));
}
public function div(s:Number):mVector{
if (s == 0){
s = 0.0001;
};
return (new mVector((this.x / s), (this.y / s)));
}
public function divEquals(s:Number):mVector{
if (s == 0){
s = 0.0001;
};
this.x = (this.x / s);
this.y = (this.y / s);
return (this);
}
public function distance(v:mVector):Number{
var delta:mVector = this.minus(v);
return (delta.length);
}
public function normalize():mVector{
var m:Number = this.length;
if (m == 0){
m = 0.0001;
};
return (this.mult((1 / m)));
}
public function compare(v:mVector):Boolean{
if ((((this.x == v.x)) && ((this.y == v.y)))){
return (true);
};
return (false);
}
public function getNormal():mVector{
return (new mVector(-(this.y), this.x));
}
public function isNormalTo(v:mVector):Boolean{
return ((this.dot(v) == 0));
}
public function angleBetween(v:mVector):Number{
var dp:Number = this.dot(v);
var cosAngle:Number = (dp / (this.length * v.length));
return (TF_Class.acosD(cosAngle));
}
public function radianBetween(v:mVector):Number{
var cos:Number = (this.dot(v) / (this.length * v.length));
return (Math.acos(cos));
}
public function get length():Number{
return (Math.sqrt(((this.x * this.x) + (this.y * this.y))));
}
public function set length(len:Number):void{
var r:Number = this.length;
if (r){
this.multEquals((len / r));
} else {
this.x = len;
};
}
public function set angle(ang:Number):void{
var r:Number = this.length;
this.x = (r * TF_Class.cosD(ang));
this.y = (r * TF_Class.sinD(ang));
}
public function get angle():Number{
return (TF_Class.atan2D(this.y, this.x));
}
}
}//package zlong.breathxue.utils.math
Section 175
//TF_Class (zlong.breathxue.utils.math.TF_Class)
package zlong.breathxue.utils.math {
import zlong.breathxue.utils.*;
public class TF_Class {
breathxue_utils_internal static const VERSION:String = "v1.15.201008201148";
public static function sinD(angle:Number):Number{
return (Math.sin((angle * (Math.PI / 180))));
}
public static function cosD(angle:Number):Number{
return (Math.cos((angle * (Math.PI / 180))));
}
public static function tanD(angle:Number):Number{
return (Math.tan((angle * (Math.PI / 180))));
}
public static function asinD(ratio:Number):Number{
return ((Math.asin(ratio) * (180 / Math.PI)));
}
public static function acosD(ratio:Number):Number{
return ((Math.acos(ratio) * (180 / Math.PI)));
}
public static function atanD(ratio:Number):Number{
return ((Math.atan(ratio) * (180 / Math.PI)));
}
public static function atan2D(y:Number, x:Number):Number{
return ((Math.atan2(y, x) * (180 / Math.PI)));
}
public static function distance(x1:Number, y1:Number, x2:Number, y2:Number):Number{
var dx:Number = (x2 - x1);
var dy:Number = (y2 - y1);
return (Math.sqrt(((dx * dx) + (dy * dy))));
}
public static function angleOfLine(x1:Number, y1:Number, x2:Number, y2:Number):Number{
return (atan2D((y2 - y1), (x2 - x1)));
}
public static function degreesToRadians(angle:Number):Number{
return ((angle * (Math.PI / 180)));
}
public static function radiansToDegrees(angle:Number):Number{
return ((angle * (180 / Math.PI)));
}
public static function fixAngle(angle:Number):Number{
angle = (angle % 360);
return (((angle)<0) ? (angle + 360) : angle);
}
public static function cartesianToPolar(p:mVector):Object{
var radius:Number = Math.sqrt(((p.x * p.x) + (p.y * p.y)));
var theta:Number = atan2D(p.y, p.x);
return ({r:radius, t:theta});
}
public static function FormatAngle(r:Number):Number{
r = (r % 360);
if (r > 180){
r = (r - 360);
};
if (r < -180){
r = (r + 360);
};
return (r);
}
public static function FormatAngle90(r:Number):Number{
r = (r % 180);
if (r > 90){
r = (180 - r);
};
if (r < -90){
r = (r + 180);
};
return (r);
}
}
}//package zlong.breathxue.utils.math
Section 176
//Attach (zlong.breathxue.utils.Attach)
package zlong.breathxue.utils {
import flash.display.*;
import flash.media.*;
import flash.utils.*;
public class Attach {
breathxue_utils_internal static const VERSION:String = "v1.15.201008201148";
private static var bitMapDataArray:Array;
public static function getDisplayObject(s:String):DisplayObject{
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:DisplayObject = new (temp);
return (returnObj);
}
public static function getSprite(s:String):Sprite{
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:Sprite = new (temp);
return (returnObj);
}
public static function getMovieClip(s:String):MovieClip{
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:MovieClip = new (temp);
return (returnObj);
}
public static function getBitmapData(s:String, repeatedUse_NoChange:Boolean=false):BitmapData{
var i:int;
if (repeatedUse_NoChange){
if (!bitMapDataArray){
bitMapDataArray = new Array();
};
i = 0;
while (i < bitMapDataArray.length) {
if (bitMapDataArray[i][0] == s){
return (bitMapDataArray[i][1]);
};
i++;
};
};
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:BitmapData = new temp(null, null);
if (repeatedUse_NoChange){
bitMapDataArray.push([s, returnObj]);
};
return (returnObj);
}
public static function clearBitmapDataCache():void{
var i:int;
while (i < bitMapDataArray.length) {
(bitMapDataArray[i][1] as BitmapData).dispose();
i++;
};
bitMapDataArray = new Array();
}
public static function getSound(s:String):Sound{
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:Sound = new (temp);
return (returnObj);
}
}
}//package zlong.breathxue.utils
Section 177
//breathxue_utils_internal (zlong.breathxue.utils.breathxue_utils_internal)
package zlong.breathxue.utils {
public namespace breathxue_utils_internal = "http://www.zlonggames.com/flash/breathxue/utils/internal";
}//package zlong.breathxue.utils
Section 178
//Countries (zlong.country.Countries)
package zlong.country {
import zlong.country.*;
import zlong.*;
class Countries {
private var _countries:Object;
private var _portal:String;
private var _portalGroup:Array;
private var _country:String;
private var _countryGroup:Array;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
function Countries(){
super();
this.initPortalGroup();
}
function set portal(gameType:String):void{
if (!this.inArray(gameType, this._portalGroup)){
throw (new ArgumentError(("Please set portal with value : " + this._portalGroup.toString())));
};
this._portal = gameType;
this.initCountries();
if (((!((this._country == null))) && (!(this.inArray(this._country, this._countryGroup))))){
throw (new ArgumentError(("Please reset country with value : " + this._countryGroup.toString())));
};
}
function get portal():String{
return (this._portal);
}
function set country(name:String):void{
if (((!((this._countryGroup == null))) && (!(this.inArray(name, this._countryGroup))))){
this._country = this._countryGroup[0];
Trace("||ZFW||", ("Error in the country value,set country with default value : " + this._countryGroup[0]));
Trace("||ZFW||", ("Please set country with value : " + this._countryGroup.toString()));
} else {
this._country = name;
};
}
function get current():CountryItem{
if (this._portal == null){
throw (new ArgumentError("Please set portal"));
};
if (this._country == null){
throw (new ArgumentError("Please set country"));
};
return (this._countries[this._country]);
}
function get countryGroup():Array{
if (this._countryGroup == null){
throw (new ArgumentError("Please set portal"));
};
return (this._countryGroup);
}
private function initCountries():void{
var countryItem:CountryItem;
var name:String;
var domain:String;
var game:String;
var language:int;
this._countries = new Object();
this._countryGroup = new Array();
var i:int;
while (i < CountriesData.DATA[this._portal]["country"].length()) {
name = CountriesData.DATA[this._portal]["country"][i].@name;
domain = CountriesData.DATA[this._portal]["country"][i].@domain;
game = CountriesData.DATA[this._portal]["country"][i].@game;
language = int(CountriesData.DATA[this._portal]["country"][i].@language);
countryItem = new CountryItem();
countryItem.name = name;
countryItem.domain = domain;
countryItem.game = game;
countryItem.language = language;
this._countries[countryItem.name] = countryItem;
this._countryGroup.push(name);
i++;
};
}
private function initPortalGroup():void{
this._portalGroup = new Array();
var i:int;
while (i < CountriesData.DATA.children().length()) {
this._portalGroup.push(CountriesData.DATA.children()[i].name());
i++;
};
}
private function inArray(str:String, arr:Array):Boolean{
var i:int;
while (i < arr.length) {
if (str == arr[i]){
return (true);
};
i++;
};
return (false);
}
}
}//package zlong.country
Section 179
//CountriesData (zlong.country.CountriesData)
package zlong.country {
import zlong.*;
class CountriesData {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
static const DATA:XML = <data>
<family>
<!-- new -->
<country name="arg" domain="www.juegos.com.ar" game="game" language="18"/><!-- Argentina -->
<country name="mx" domain="www.juegos.mx" game="game" language="19"/><!-- Mexico -->
<country name="ar" domain="www.dailygame.com" game="game" language="1"/><!-- Arabic(English US) 2009.07.14-->
<country name="br" domain="www.ojogos.com.br" game="jogo" language="7"/><!-- Brazillian -->
<country name="cn" domain="www.game.com.cn" game="moregames" language="17"/><!-- Chinese -->
<country name="de" domain="www.jetztspielen.de" game="spiel" language="5"/><!-- German -->
<country name="es" domain="www.juegos.com" game="juego" language="6"/><!-- Spanish -->
<country name="fr" domain="www.jeux.fr" game="jeu" language="4"/><!-- French -->
<country name="id" domain="www.games.co.id" game="permainanme" language="14"/><!-- Indonesian -->
<country name="in" domain="www.game.co.in" game="game" language="2"/><!-- English UK -->
<country name="it" domain="www.gioco.it" game="gioco" language="9"/><!-- Italian -->
<country name="jp" domain="www.egames.jp" game="game" language="16"/><!-- Japanese -->
<country name="nl" domain="www.spelletjes.nl" game="spel" language="3"/><!-- Dutch -->
<country name="pl" domain="www.gry.pl" game="gra" language="11"/><!-- Polish -->
<country name="pt" domain="www.ojogos.pt" game="jogo" language="8"/><!-- Portuguese -->
<country name="ru" domain="www.ourgames.ru" game="igra" language="12"/><!-- Russian -->
<country name="se" domain="www.spela.se" game="spel_" language="10"/><!-- Swedish -->
<country name="en_uk" domain="www.games.co.uk" game="game" language="2"/><!-- English UK -->
<country name="en_us" domain="www.gamesgames.com" game="game" language="1"/><!-- English US -->
<!-- removed -->
<!-- country name="ph" domain="www.laro.com.ph" game="game" language="2"/ --><!-- English UK -->
<!-- country name="tr" domain="www.asoyun.com" game="oyun" language="13"/ --><!-- Turkish -->
<!-- country name="my" domain="www.game.com.my" game="permainan_" language="15"/ --><!-- Malaysian -->
</family>
<tween>
<!-- new -->
<country name="arg" domain="www.juegos.com.ar" game="game" language="18"/><!-- Argentina -->
<country name="mx" domain="www.juegos.mx" game="game" language="19"/><!-- Mexico -->
<country name="ar" domain="www.dailygame.com" game="game" language="1"/><!-- Arabic(English US) 2009.07.14 -->
<country name="br" domain="www.clickjogos.com" game="jogo" language="7"/><!-- Brazillian -->
<country name="cn" domain="www.game.com.cn" game="moregames" language="17"/><!-- Chinese -->
<country name="de" domain="www.spielen.com" game="spiel" language="5"/><!-- German -->
<country name="es" domain="www.zapjuegos.com" game="juego" language="6"/><!-- Spanish -->
<country name="fr" domain="www.jeu.fr" game="jeu" language="4"/><!-- French -->
<country name="id" domain="www.games.co.id" game="permainanme" language="14"/><!-- Indonesian -->
<country name="in" domain="www.game.co.in" game="game" language="2"/><!-- English UK -->
<country name="it" domain="www.gioco.it" game="gioco" language="9"/><!-- Italian 2009.08.10 -->
<country name="jp" domain="www.egames.jp" game="game" language="16"/><!-- Japanese -->
<country name="nl" domain="www.spel.nl" game="spel" language="3"/><!-- Dutch -->
<country name="pl" domain="www.gry.pl" game="gra" language="11"/><!-- Polish 2009.08.10-->
<country name="pt" domain="www.ojogos.pt" game="jogo" language="8"/><!-- Portuguese -->
<country name="ru" domain="www.flashgames.ru" game="igra" language="12"/><!-- Russian -->
<country name="se" domain="www.spel.se" game="spel_" language="10"/><!-- Swedish -->
<country name="en_uk" domain="www.agame.com" game="game" language="2"/><!-- English UK 2009.08.28-->
<country name="en_us" domain="www.agame.com" game="game" language="1"/><!-- English US -->
<!-- removed -->
<!-- country name="ph" domain="www.laro.com.ph" game="game" language="2"/ --><!-- English UK -->
<!-- country name="tr" domain="www.asoyun.com" game="oyun" language="13"/ --><!-- Turkish -->
<!-- country name="my" domain="www.game.com.my" game="permainan_" language="15"/ --><!-- Malaysian -->
</tween>
<girl>
<!-- new -->
<country name="arg" domain="www.juegosdechicas.com.ar" game="game" language="18"/><!-- Argentina -->
<country name="mx" domain="www.juegosdechicas.mx" game="game" language="19"/><!-- Mexico -->
<country name="ar" domain="www.dailygame.com" game="game" language="1"/><!-- Arabic(English US) 2009.07.14-->
<country name="br" domain="www.girlsgogames.com.br" game="jogo" language="7"/><!-- Brazillian -->
<country name="cn" domain="www.game.com.cn" game="moregames" language="17"/><!-- Chinese -->
<country name="de" domain="www.girlsgogames.de" game="spiel" language="5"/><!-- German -->
<country name="es" domain="www.girlsgogames.es" game="juego" language="6"/><!-- Spanish -->
<country name="fr" domain="www.girlsgogames.fr" game="jeu" language="4"/><!-- French -->
<country name="id" domain="www.girlsgogames.co.id" game="permainanme" language="14"/><!-- Indonesian -->
<country name="in" domain="www.game.co.in" game="game" language="2"/><!-- English UK -->
<country name="it" domain="www.girlsgogames.it" game="gioco" language="9"/><!-- Italian -->
<country name="jp" domain="www.egames.jp" game="game" language="16"/><!-- Japanese -->
<country name="nl" domain="www.girlsgogames.nl" game="spel" language="3"/><!-- Dutch -->
<country name="pl" domain="www.girlsgogames.pl" game="gra" language="11"/><!-- Polish -->
<country name="pt" domain="www.ojogos.pt" game="jogo" language="8"/><!-- Portuguese -->
<country name="ru" domain="www.girlsgogames.ru" game="igra" language="12"/><!-- Russian -->
<country name="se" domain="www.girlsgogames.se" game="spel_" language="10"/><!-- Swedish -->
<country name="en_uk" domain="www.girlsgogames.co.uk" game="game" language="2"/><!-- English UK -->
<country name="en_us" domain="www.girlsgogames.com" game="game" language="1"/><!-- English US -->
<!-- removed -->
<!-- country name="ph" domain="www.laro.com.ph" game="game" language="2"/ --><!-- English UK -->
<!-- country name="tr" domain="www.girlsgogamestr.com" game="oyun" language="13"/ --><!-- Turkish -->
<!-- country name="my" domain="www.game.com.my" game="permainan_" language="15"/ --><!-- Malaysian -->
</girl>
<teen>
<!-- new -->
<!--country name="arg" domain="www.juegosdechicas.com.ar" game="game" language="18"/ --><!-- Argentina -->
<!--country name="mx" domain="www.juegosdechicas.mx" game="game" language="19"/ --><!-- Mexico -->
<!--country name="ar" domain="www.dailygame.com" game="game" language="1"/ --><!-- Arabic(English US) 2009.07.14-->
<!--country name="br" domain="www.a10.com" game="jogo" language="7"/ --><!-- Brazillian -->
<!--country name="cn" domain="www.game.com.cn" game="moregames" language="17"/ --><!-- Chinese -->
<!--country name="de" domain="www.a10.com" game="spiel" language="5"/ --><!-- German -->
<!--country name="es" domain="www.a10.com" game="juego" language="6"/ --><!-- Spanish -->
<!--country name="fr" domain="www.a10.com" game="jeu" language="4"/ --><!-- French -->
<!--country name="id" domain="www.a10.com" game="permainanme" language="14"/ --><!-- Indonesian -->
<!--country name="in" domain="www.a10.com" game="game" language="2"/ --><!-- English UK -->
<!--country name="it" domain="www.a10.com" game="gioco" language="9"/ --><!-- Italian -->
<!--country name="jp" domain="www.a10.com" game="game" language="16"/ --><!-- Japanese -->
<!--country name="nl" domain="www.a10.com" game="spel" language="3"/ --><!-- Dutch -->
<!--country name="pl" domain="www.a10.com" game="gra" language="11"/ --><!-- Polish -->
<!--country name="pt" domain="www.a10.com" game="jogo" language="8"/ --><!-- Portuguese -->
<!--country name="ru" domain="www.a10.com" game="igra" language="12"/ --><!-- Russian -->
<!--country name="se" domain="www.a10.com" game="spel_" language="10"/ --><!-- Swedish -->
<!--country name="en_uk" domain="www.a10.com" game="game" language="2"/ --><!-- English UK -->
<country name="en_us" domain="www.a10.com" game="game" language="1"/><!-- English US -->
<!-- removed -->
<!-- country name="ph" domain="www.a10.com" game="game" language="2"/ --><!-- English UK -->
<!-- country name="tr" domain="www.a10.com" game="oyun" language="13"/ --><!-- Turkish -->
<!-- country name="my" domain="www.a10.com" game="permainan_" language="15"/ --><!-- Malaysian -->
</teen>
<zapapa>
<!-- new -->
<country name="arg" domain="www.zapapa.com" game="game" language="18"/><!-- Argentina -->
<country name="mx" domain="www.zapapa.com" game="game" language="19"/><!-- Mexico -->
<country name="ar" domain="www.zapapa.com" game="game" language="1"/><!-- Arabic(English US) 2009.07.14-->
<country name="br" domain="www.zapapa.com" game="game" language="7"/><!-- Brazillian -->
<country name="cn" domain="www.zapapa.com" game="game" language="17"/><!-- Chinese -->
<country name="de" domain="www.zapapa.com" game="game" language="5"/><!-- German -->
<country name="es" domain="www.zapapa.com" game="game" language="6"/><!-- Spanish -->
<country name="fr" domain="www.zapapa.com" game="game" language="4"/><!-- French -->
<country name="id" domain="www.zapapa.com" game="game" language="14"/><!-- Indonesian -->
<country name="in" domain="www.zapapa.com" game="game" language="2"/><!-- English UK -->
<country name="it" domain="www.zapapa.com" game="game" language="9"/><!-- Italian -->
<country name="jp" domain="www.zapapa.com" game="game" language="16"/><!-- Japanese -->
<country name="nl" domain="www.zapapa.com" game="game" language="3"/><!-- Dutch -->
<country name="pl" domain="www.zapapa.com" game="game" language="11"/><!-- Polish -->
<country name="pt" domain="www.zapapa.com" game="game" language="8"/><!-- Portuguese -->
<country name="ru" domain="www.zapapa.com" game="game" language="12"/><!-- Russian -->
<country name="se" domain="www.zapapa.com" game="game" language="10"/><!-- Swedish -->
<country name="en_uk" domain="www.zapapa.com" game="game" language="2"/><!-- English UK -->
<country name="en_us" domain="www.zapapa.com" game="game" language="1"/><!-- English US -->
</zapapa>
<hyves>
<!-- new -->
<country name="nl" domain="www.zapapa.nl" game="game" language="3"/><!-- Dutch -->
</hyves>
</data>
;
}
}//package zlong.country
Section 180
//CountryInfo (zlong.country.CountryInfo)
package zlong.country {
import zlong.domain.*;
import zlong.*;
import zlong.data.*;
public class CountryInfo {
private var countries:Countries;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static var _instance:CountryInfo;
public function CountryInfo(){
super();
this.countries = new Countries();
}
public function set portal(portal:String):void{
this.countries.portal = portal;
}
public function get portal():String{
return (this.countries.portal);
}
public function set country(country:String):void{
this.countries.country = country;
}
public function get country():String{
return (this.countries.current.name);
}
public function get domain():String{
return (this.countries.current.domain);
}
public function get language():int{
return (this.countries.current.language);
}
public function get countryGroup():Array{
return (this.countries.countryGroup);
}
public function get copyRightLink():String{
var str:String;
str = "http://www.gameportal.net";
str = (str + "/");
str = (str + ("?utm_medium=brandedgames_" + (DomainInfo.instance.allowed) ? "internal" : "external"));
str = (str + ("&utm_campaign=" + GameInfo.name));
str = (str + ("&utm_source=" + DomainInfo.instance.domainAb));
str = (str + "&utm_content=Mainscreen");
return (str);
}
public function get moreGameLink():String{
var str:String;
str = ("http://" + this.domain);
if (this.countries.current.name != "cn"){
str = (str + "/");
str = (str + ("?utm_medium=brandedgames_" + (DomainInfo.instance.allowed) ? "internal" : "external"));
str = (str + ("&utm_campaign=" + GameInfo.name));
str = (str + ("&utm_source=" + DomainInfo.instance.domainAb));
} else {
str = (str + "/");
str = (str + "moregames");
str = (str + "/");
};
return (str);
}
public function get thisGameLink():String{
var str:String;
str = ("http://" + this.domain);
str = (str + ((("/" + this.countries.current.game) + "/") + GameInfo.html));
if (this.countries.current.name != "cn"){
str = (str + ("?utm_medium=brandedgames_" + (DomainInfo.instance.allowed) ? "internal" : "external"));
str = (str + ("&utm_campaign=" + GameInfo.name));
str = (str + ("&utm_source=" + DomainInfo.instance.domainAb));
};
return (str);
}
public function get sendToFriendLink():String{
var str:String = this.thisGameLink;
if (this.countries.current.name != "cn"){
str = (str + "&utm_content=send_to_friend");
};
return (str);
}
public static function get instance():CountryInfo{
if (_instance == null){
_instance = new (CountryInfo);
};
return (_instance);
}
}
}//package zlong.country
Section 181
//CountryItem (zlong.country.CountryItem)
package zlong.country {
import zlong.*;
final class CountryItem {
var name:String;
var domain:String;
var game:String;
var language:int;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
}
}//package zlong.country
Section 182
//CountryCookie (zlong.data.CountryCookie)
package zlong.data {
import flash.net.*;
import zlong.*;
public class CountryCookie {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static const name:String = "spilgames_language_v100";
private static const countryName:String = "savedLang";
private static var so:SharedObject;
public function CountryCookie():void{
super();
so = SharedObject.getLocal(name, "/");
}
localComponent_internal static function set country(_value:String):void{
so.data[countryName] = _value;
}
localComponent_internal static function get country():String{
return (so.data[countryName]);
}
}
}//package zlong.data
Section 183
//Data (zlong.data.Data)
package zlong.data {
import flash.display.*;
import flash.net.*;
import zlong.utils.*;
public class Data {
public static var lastProfileName:String;
public static var totalLevel:int = 5;
public static var currPlayingLevel:int = 1;
public static var profileObject:SharedObject;
public static var currentUserName:String;
public static var userProfile:UserProfile;
public function Data(){
super();
}
public static function saveUserProfile():void{
profileObject.data["lastProfileName"] = currentUserName;
profileObject.data[currentUserName] = userProfile;
SharedObjectUtil.save(profileObject);
}
public static function newUserProfile(profileName:String):void{
currentUserName = profileName;
userProfile = initDefaultProfile();
saveUserProfile();
}
public static function resetlevel():void{
currPlayingLevel = 1;
}
private static function initDefaultProfile():UserProfile{
var profile:UserProfile = new UserProfile();
profile.gameDifficult = GameDifficult.NORMAL;
profile.levelUnlocked = 0;
profile.musicEnable = true;
profile.soundEnable = true;
profile.winCount = 0;
profile.failCount = 0;
profile.score = 0;
profile.quality = StageQuality.BEST;
return (profile);
}
public static function init():void{
registerClassAlias("zlong.data.UserProfile", UserProfile);
profileObject = SharedObjectUtil.getLocal("UserData");
lastProfileName = profileObject.data["lastProfileName"];
trace(lastProfileName);
if (((lastProfileName) && (!((lastProfileName == ""))))){
currentUserName = lastProfileName;
userProfile = UserProfile(profileObject.data[currentUserName]);
} else {
newUserProfile("default");
};
}
}
}//package zlong.data
Section 184
//GameDifficult (zlong.data.GameDifficult)
package zlong.data {
public class GameDifficult {
public static const EASY:int = 1;
public static const NORMAL:int = 2;
public static const HARD:int = 3;
public function GameDifficult(){
super();
}
}
}//package zlong.data
Section 185
//GameInfo (zlong.data.GameInfo)
package zlong.data {
import zlong.*;
public class GameInfo {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
localComponent_internal static var cnversion:Boolean = false;
localComponent_internal static var portal:String = "family";
localComponent_internal static var name:String = "game_name";
localComponent_internal static var html:String = "Game-Name.html";
localComponent_internal static var width:int = 550;
localComponent_internal static var height:int = 400;
}
}//package zlong.data
Section 186
//UserProfile (zlong.data.UserProfile)
package zlong.data {
public class UserProfile {
public var levelUnlocked:int;
public var musicEnable:Boolean;
public var gameDifficult:int;
public var failCount:uint;
public var soundEnable:Boolean;
public var userName:String;
public var score:uint;
public var winCount:uint;
public var quality:String;
public function UserProfile(){
super();
}
}
}//package zlong.data
Section 187
//AbstractBindingDisplay (zlong.display.AbstractBindingDisplay)
package zlong.display {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class AbstractBindingDisplay extends MovieClip {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function AbstractBindingDisplay(){
super();
if (getQualifiedClassName(this) == "zlong::display::AbstractBindingDisplay"){
throw (new ArgumentError("can't be constructed"));
};
}
public function initEvent(e:Event=null):void{
}
public function delEvent(e:Event=null):void{
}
}
}//package zlong.display
Section 188
//BindingDisplayEvent (zlong.display.BindingDisplayEvent)
package zlong.display {
import flash.events.*;
public class BindingDisplayEvent extends Event {
private var _BD:AbstractBindingDisplay;
private var _displayType:String;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public static const BINDING_DISPLAY_INIT:String = "BINDING_DISPLAY_INIT";
public static const BINDING_DISPLAY_DEL_EVENT:String = "BINDING_DISPLAY_DEL_EVENT";
public static const BINDING_DISPLAY_ADDED_TO_STAGE:String = "BINDING_DISPLAY_ADDED_TO_STAGE";
public static const BINDING_DISPLAY_REMOVE_TO_STAGE:String = "BINDING_DISPLAY_REMOVE_TO_STAGE";
public function BindingDisplayEvent(type:String, BD:AbstractBindingDisplay, displayType:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this._BD = BD;
this._displayType = displayType;
}
public function get bindingDisplay():AbstractBindingDisplay{
return (this._BD);
}
public function get displayType():String{
return (this._displayType);
}
}
}//package zlong.display
Section 189
//BindingDisplayManager (zlong.display.BindingDisplayManager)
package zlong.display {
import flash.events.*;
public class BindingDisplayManager extends EventDispatcher {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static var _instance:BindingDisplayManager;
public function BindingDisplayManager():void{
super();
}
public static function get Instance():BindingDisplayManager{
if (_instance == null){
_instance = new (BindingDisplayManager);
};
return (_instance);
}
}
}//package zlong.display
Section 190
//CountriesBox (zlong.display.CountriesBox)
package zlong.display {
import flash.display.*;
import flash.events.*;
import zlong.data.*;
import flash.geom.*;
import zlong.*;
import zlong.country.*;
public class CountriesBox extends AbstractBindingDisplay {
private var i:uint;
private var mul:int;// = 1
private var baseX:Number;// = 0
private var baseY:Number;// = 0
private var nameGroup:Array;
private var obj:Object;
private var pop:Sprite;
private var flagMc:MovieClip;
private var selectBox:MovieClip;
private var country_name:MovieClip;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function CountriesBox(){
this.nameGroup = [];
super();
if (GameInfo.portal == GameSetting.PORTAL_TYPE_HYVES){
this.visible = false;
};
addEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_INIT, this, "CountriesBox"));
}
private function addToStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_ADDED_TO_STAGE, this, "CountriesBox"));
this.initEvent();
}
private function removeFromStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_REMOVE_TO_STAGE, this, "CountriesBox"));
this.delEvent();
}
override public function initEvent(e:Event=null):void{
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
this.initShow();
addEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
}
override public function delEvent(e:Event=null):void{
removeEventListener(MouseEvent.ROLL_OVER, this.overHandler);
removeEventListener(MouseEvent.ROLL_OUT, this.outHandler);
removeEventListener(MouseEvent.CLICK, this.clickHandler);
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
if (this.hasEventListener(Event.REMOVED_FROM_STAGE)){
removeEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
};
this.delPoPEvent();
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_DEL_EVENT, this, "CountriesBox"));
}
private function initShow():void{
this.obj = new Object();
this.initPos();
this.setFlag();
this.setPop();
this.initFlagEvent();
this.initPoPEvent();
if (GameInfo.cnversion){
this.visible = false;
this.setLanguage("cn");
};
}
private function initPos():void{
var p:Point = new Point();
p = this.parent.localToGlobal(new Point(x, y));
if (p.y > (GameInfo.height / 2)){
this.mul = 1;
} else {
this.mul = -1;
};
}
private function setFlag():void{
this.country_name = (getChildByName("countryName") as MovieClip);
this.flagMc = (getChildByName("flag") as MovieClip);
this.flagMc.gotoAndStop(CountryInfo.instance.country);
this.country_name.gotoAndStop(CountryInfo.instance.country);
}
private function setPop():void{
var unitW:Number;
var unitH:Number;
var pop_flag:MovieClip;
var _name:String;
var pop_flag_flag:MovieClip;
var dx:Number = 0;
var dy:Number = 0;
this.pop = (getChildByName("popList") as Sprite);
this.selectBox = (getChildByName("selectbox") as MovieClip);
unitW = this.pop.getChildByName("_blank").width;
unitH = (this.pop.getChildByName("_blank").height - 1);
this.baseX = this.selectBox.x;
this.nameGroup = CountryInfo.instance.countryGroup;
var len:int = this.nameGroup.length;
if (this.mul == 1){
this.baseY = ((this.selectBox.y - (Math.round((len / 2)) * unitH)) + unitH);
} else {
this.baseY = ((this.selectBox.y + this.selectBox.height) + unitH);
};
this.pop.y = this.baseY;
this.pop.visible = false;
this.pop.getChildByName("_blank").visible = false;
this.i = 0;
while (this.i < len) {
_name = this.nameGroup[this.i];
if (this.pop.getChildByName(("l_" + _name)) != null){
pop_flag = (this.pop.getChildByName(("l_" + _name)) as MovieClip);
pop_flag.mouseChildren = false;
pop_flag.buttonMode = true;
pop_flag.stop();
pop_flag_flag = (pop_flag.getChildByName("flag") as MovieClip);
pop_flag_flag.mouseEnabled = false;
pop_flag_flag.mouseChildren = false;
pop_flag_flag.gotoAndStop(_name);
this.obj[("l_" + _name)] = true;
dx = (((this.i % 2) == 0)) ? 0 : 1;
pop_flag.x = ((unitW * (this.i % 2)) - dx);
pop_flag.y = ((unitH * Math.floor((this.i / 2))) - unitH);
};
this.i++;
};
this.i = 0;
while (this.i < this.pop.numChildren) {
if (this.pop.getChildAt(this.i).name.indexOf("l_") != -1){
if (this.obj[this.pop.getChildAt(this.i).name] == undefined){
this.pop.getChildAt(this.i).visible = false;
};
};
this.i++;
};
if ((this.nameGroup.length % 2) == 0){
this.pop.getChildByName("_blank").visible = false;
} else {
this.pop.getChildByName("_blank").visible = true;
this.pop.getChildByName("_blank").x = (unitW - 1);
this.pop.getChildByName("_blank").y = (((unitH * Math.floor((this.nameGroup.length / 2))) - unitH) - dy);
};
}
private function initFlagEvent():void{
addEventListener(MouseEvent.ROLL_OVER, this.overHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, this.outHandler, false, 0, true);
addEventListener(MouseEvent.CLICK, this.clickHandler, false, 0, true);
}
private function clickHandler(e:MouseEvent):void{
var _flag:MovieClip;
var _name:String = e.target["name"];
if (_name == "_blank"){
return;
};
if (_name.indexOf("l_") != -1){
_flag = (e.target["getChildByName"]("flag") as MovieClip);
this.flagMc.gotoAndStop(_name.substr(2));
this.country_name.gotoAndStop(_flag.currentFrame);
this.setLanguage(_name.substr(2));
this.pop.visible = false;
};
}
private function setLanguage(_cnm:String):void{
CountryInfo.instance.country = _cnm;
CountryCookie.country = _cnm;
Dispatcher.langChanged();
}
private function overHandler(e:MouseEvent):void{
this.pop.visible = true;
}
private function outHandler(e:MouseEvent):void{
this.pop.visible = false;
}
private function initPoPEvent():void{
this.pop.addEventListener(MouseEvent.MOUSE_OVER, this.overPoPHandler);
this.pop.addEventListener(MouseEvent.MOUSE_OUT, this.outPoPHandler);
}
private function delPoPEvent():void{
this.pop.removeEventListener(MouseEvent.MOUSE_OVER, this.overPoPHandler);
this.pop.removeEventListener(MouseEvent.MOUSE_OUT, this.outPoPHandler);
}
private function overPoPHandler(e:MouseEvent):void{
var _local2 = e.target;
_local2["gotoAndStop"](2);
}
private function outPoPHandler(e:MouseEvent):void{
var _local2 = e.target;
_local2["gotoAndStop"](1);
}
}
}//package zlong.display
Section 191
//Dispatcher (zlong.display.Dispatcher)
package zlong.display {
import flash.events.*;
import zlong.*;
class Dispatcher {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
static const LANGUAGE_CHANGED:String = "languageChanged";
static var dispatcher:EventDispatcher = new EventDispatcher();
static function langChanged():void{
dispatcher.dispatchEvent(new Event(LANGUAGE_CHANGED));
}
}
}//package zlong.display
Section 192
//ExtButton (zlong.display.ExtButton)
package zlong.display {
import flash.events.*;
import zlong.navigate.*;
public class ExtButton extends AbstractBindingDisplay {
private var _type:String;// = "moregames"
private var _position:String;// = "button_preloader"
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function ExtButton(){
super();
this.gotoAndStop(1);
this.buttonMode = true;
this.mouseChildren = false;
addEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_INIT, this, "ExtButton"));
}
private function addToStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_ADDED_TO_STAGE, this, "ExtButton"));
this.initEvent();
}
private function removeFromStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_REMOVE_TO_STAGE, this, "ExtButton"));
this.delEvent();
}
override public function initEvent(e:Event=null):void{
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
this.addEventListener(MouseEvent.CLICK, this.clickHandler);
this.addEventListener(MouseEvent.ROLL_OVER, this.rollOverHandler);
this.addEventListener(MouseEvent.MOUSE_DOWN, this.mouseDownHandler);
this.addEventListener(MouseEvent.MOUSE_UP, this.mouseUpHandler);
this.addEventListener(MouseEvent.ROLL_OUT, this.rollOutHandler);
this.addEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
}
override public function delEvent(e:Event=null):void{
this.removeEventListener(MouseEvent.CLICK, this.clickHandler);
this.removeEventListener(MouseEvent.ROLL_OVER, this.rollOverHandler);
this.removeEventListener(MouseEvent.MOUSE_DOWN, this.mouseDownHandler);
this.removeEventListener(MouseEvent.MOUSE_UP, this.mouseUpHandler);
this.removeEventListener(MouseEvent.ROLL_OUT, this.rollOutHandler);
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
if (this.hasEventListener(Event.REMOVED_FROM_STAGE)){
removeEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
};
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_DEL_EVENT, this, "ExtButton"));
}
public function set position(_str:String):void{
this._position = _str;
}
public function set type(_str:String):void{
this._type = _str;
}
private function clickHandler(e:MouseEvent):void{
if (this._type == "moregames"){
Handler.click_moregames(this._position);
} else {
Handler.click_thisgame(this._position);
};
}
private function rollOverHandler(evt:MouseEvent):void{
this.gotoAndStop(2);
}
private function mouseDownHandler(evt:MouseEvent):void{
this.gotoAndStop(3);
}
private function mouseUpHandler(evt:MouseEvent):void{
this.gotoAndStop(2);
}
private function rollOutHandler(evt:MouseEvent):void{
this.gotoAndStop(1);
}
}
}//package zlong.display
Section 193
//Hyves (zlong.display.Hyves)
package zlong.display {
import flash.display.*;
import zlong.country.*;
import zlong.*;
public class Hyves extends Sprite {
public function Hyves(){
super();
if (CountryInfo.instance.portal == GameSetting.PORTAL_TYPE_HYVES){
} else {
this.visible = false;
};
}
}
}//package zlong.display
Section 194
//HyvesLoading (zlong.display.HyvesLoading)
package zlong.display {
import flash.display.*;
import zlong.country.*;
import zlong.*;
public class HyvesLoading extends Sprite {
public function HyvesLoading(){
var logo:Sprite;
var logohyves:Sprite;
super();
if (CountryInfo.instance.portal == GameSetting.PORTAL_TYPE_HYVES){
logo = (this.getChildByName("logo") as Sprite);
if (logo){
logo.visible = false;
};
Trace("||error||", "logo not in HyvesLoading");
} else {
logohyves = (this.getChildByName("logohyves") as Sprite);
logohyves.visible = false;
//unresolved jump
var _slot1 = e;
Trace("||error||", _slot1);
this.visible = false;
};
}
}
}//package zlong.display
Section 195
//Logo (zlong.display.Logo)
package zlong.display {
import flash.display.*;
import flash.events.*;
import zlong.breathxue.utils.math.*;
import zlong.country.*;
import zlong.navigate.*;
public class Logo extends AbstractBindingDisplay {
private const MAX_WIDTH:int = 200;
private const Max_HEIGHT:int = 50;
private var _hitArea:Sprite;
private var _position:String;// = "logo_preloader"
private var _alignHorizontal:String;// = "Center"
private var _alignVertical:String;// = "Center"
private var _maxWidth:Number;// = 150
private var _maxHeight:Number;// = 40
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function Logo(){
super();
this.initDis();
addEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler, false, 0, true);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_INIT, this, "Logo"));
}
private function addToStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_ADDED_TO_STAGE, this, "Logo"));
this.initEvent();
}
private function removeFromStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_REMOVE_TO_STAGE, this, "Logo"));
this.delEvent();
}
override public function initEvent(e:Event=null):void{
gotoAndStop(CountryInfo.instance.domain);
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
this.addEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
this.addEventListener(MouseEvent.CLICK, this.clickHandler);
Dispatcher.dispatcher.addEventListener(Dispatcher.LANGUAGE_CHANGED, this.langChangeHandler);
this.updateView();
}
override public function delEvent(e:Event=null):void{
this.delDis();
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
if (this.hasEventListener(Event.REMOVED_FROM_STAGE)){
removeEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
};
this.removeEventListener(MouseEvent.CLICK, this.clickHandler);
Dispatcher.dispatcher.removeEventListener(Dispatcher.LANGUAGE_CHANGED, this.langChangeHandler);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_DEL_EVENT, this, "Logo"));
}
public function set position(_str:String):void{
this._position = _str;
}
public function set alignHorizontal(str:String):void{
this._alignHorizontal = str;
}
public function set alignVertical(str:String):void{
this._alignVertical = str;
}
public function set maxWidth(value:Number):void{
if (value < 0){
value = 0;
} else {
if (value > this.MAX_WIDTH){
value = this.MAX_WIDTH;
};
};
this._maxWidth = value;
}
public function set maxHeight(value:Number):void{
if (value < 0){
value = 0;
} else {
if (value > this.Max_HEIGHT){
value = this.Max_HEIGHT;
};
};
this._maxHeight = value;
}
private function updateView():void{
var wh:mVector;
var scale1:Number;
var scale2:Number;
var scale:Number;
var twh:Sprite = (this.getChildByName("wh") as Sprite);
var target:Sprite = (this.getChildAt(0) as Sprite);
if (!target){
return;
};
target.scaleX = 1;
target.scaleY = 1;
if (twh){
wh = new mVector(twh.width, twh.height);
} else {
wh = new mVector(target.width, target.height);
};
if ((((wh.x > 0)) && ((wh.y > 0)))){
scale1 = (this._maxHeight / wh.y);
scale2 = (this._maxWidth / wh.x);
scale = ((scale1 > scale2)) ? scale2 : scale1;
wh.multEquals(scale);
target.scaleX = scale;
target.scaleY = scale;
};
if (this._alignHorizontal){
switch (this._alignHorizontal){
case "Left":
target.x = 0;
break;
case "Right":
target.x = (this.MAX_WIDTH - wh.x);
break;
case "Center":
target.x = ((this.MAX_WIDTH - wh.x) / 2);
break;
};
};
if (this._alignVertical){
switch (this._alignVertical){
case "Up":
target.y = 0;
break;
case "Down":
target.y = (this.Max_HEIGHT - wh.y);
break;
case "Center":
target.y = ((this.Max_HEIGHT - wh.y) / 2);
break;
};
};
this._hitArea.width = wh.x;
this._hitArea.height = wh.y;
this._hitArea.x = target.x;
this._hitArea.y = target.y;
}
private function initDis():void{
buttonMode = true;
this._hitArea = new Sprite();
this.addChild(this._hitArea);
this._hitArea.graphics.beginFill(3368601, 0);
this._hitArea.graphics.drawRect(0, 0, 10, 10);
this._hitArea.graphics.endFill();
this.getChildByName("displayArea_mc").visible = false;
var i:int;
while (i < this.totalFrames) {
this.addFrameScript(i, this.updateView);
i++;
};
}
private function delDis():void{
stop();
}
private function clickHandler(e:MouseEvent):void{
Handler.click_moregames(this._position);
}
private function langChangeHandler(e:Event):void{
gotoAndStop(CountryInfo.instance.domain);
}
}
}//package zlong.display
Section 196
//Menu (zlong.display.Menu)
package zlong.display {
import flash.events.*;
import flash.display.*;
import zlong.country.*;
import zlong.*;
import flash.ui.*;
import zlong.navigate.*;
public class Menu {
private var displayObject:InteractiveObject;
private var menu:ContextMenu;
private var item:ContextMenuItem;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function Menu(doc:InteractiveObject){
super();
this.displayObject = doc;
this.init();
this.initEvent();
}
private function init():void{
this.menu = new ContextMenu();
this.menu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = this.menu.builtInItems;
defaultItems.print = true;
defaultItems.zoom = true;
defaultItems.quality = true;
this.item = new ContextMenuItem(("MoreGame: " + CountryInfo.instance.domain));
this.menu.customItems.push(this.item);
this.displayObject.contextMenu = this.menu;
}
private function initEvent():void{
this.item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.clickItemHandler);
Dispatcher.dispatcher.addEventListener(Dispatcher.LANGUAGE_CHANGED, this.changeLang);
}
private function changeLang(e:Event):void{
this.item.caption = CountryInfo.instance.domain;
}
private function clickItemHandler(e:ContextMenuEvent):void{
Handler.click_moregames("Contex_Menu");
}
}
}//package zlong.display
Section 197
//TranText (zlong.display.TranText)
package zlong.display {
import flash.events.*;
import zlong.country.*;
public class TranText extends AbstractBindingDisplay {
private var isChange:Boolean;// = true
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public function TranText(){
super();
addEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler, false, 0, true);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_INIT, this, "TranText"));
}
private function addToStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_ADDED_TO_STAGE, this, "TranText"));
this.initEvent();
}
private function removeFromStageHandler(e:Event):void{
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_REMOVE_TO_STAGE, this, "TranText"));
this.delEvent();
}
override public function initEvent(e:Event=null):void{
this.changeLang();
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
addEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
Dispatcher.dispatcher.addEventListener(Dispatcher.LANGUAGE_CHANGED, this.langChangeHandler);
}
override public function delEvent(e:Event=null):void{
if (this.hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, this.addToStageHandler);
};
if (this.hasEventListener(Event.REMOVED_FROM_STAGE)){
removeEventListener(Event.REMOVED_FROM_STAGE, this.removeFromStageHandler);
};
Dispatcher.dispatcher.removeEventListener(Dispatcher.LANGUAGE_CHANGED, this.langChangeHandler);
BindingDisplayManager.Instance.dispatchEvent(new BindingDisplayEvent(BindingDisplayEvent.BINDING_DISPLAY_DEL_EVENT, this, "TranText"));
}
public function set change(_v:Boolean):void{
this.isChange = _v;
}
private function changeLang():void{
gotoAndStop(CountryInfo.instance.language);
}
private function langChangeHandler(e:Event):void{
if (this.isChange){
this.changeLang();
};
}
}
}//package zlong.display
Section 198
//DomainData (zlong.domain.DomainData)
package zlong.domain {
import zlong.*;
final class DomainData {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
static const allowedDomain:Array = ["www8.agame.com", "www.zlonggamestest.com", "gamedev.dev.spilgames.com"];
}
}//package zlong.domain
Section 199
//DomainInfo (zlong.domain.DomainInfo)
package zlong.domain {
import flash.net.*;
import zlong.*;
public final class DomainInfo {
private var _allowed:Boolean;
private var _domain:String;
private var _domainAb:String;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static var _instance:DomainInfo;
public function DomainInfo(){
super();
this._domain = new LocalConnection().domain;
this.initAllowed();
this.initAb();
}
localComponent_internal function get allowed():Boolean{
return (this._allowed);
}
localComponent_internal function get domain():String{
return (this._domain);
}
localComponent_internal function get domainAb():String{
return (this._domainAb);
}
private function initAllowed():void{
var i:int;
while (i < DomainData.allowedDomain.length) {
if (this._domain == DomainData.allowedDomain[i]){
this._allowed = true;
break;
};
i++;
};
}
private function initAb():void{
var temp:Array;
var extention:int;
var name:int;
if (this._domain != "localhost"){
temp = this._domain.split(".");
extention = (temp.length - 1);
name = (temp.length - 2);
this._domainAb = ((temp[name] + ".") + temp[extention]);
} else {
this._domainAb = "offline_play";
};
}
public static function get instance():DomainInfo{
if (_instance == null){
_instance = new (DomainInfo);
};
return (_instance);
}
}
}//package zlong.domain
Section 200
//UIEvent (zlong.events.UIEvent)
package zlong.events {
import flash.events.*;
public class UIEvent extends Event {
public static var HIDE_STATISTICS:String = "HIDE_STATISTICS";
public static var LOSE_LEVEL:String = "LOSE_LEVEL";
public static var START_GAME:String = "START_GAME";
public static var SET_AS_AVATAR:String = "SET_AS_AVATAR";
public static var UPLOAD_PHOTO:String = "UPLOAD_PHOTO";
public static var WIN_GAME:String = "WIN_GAME";
public static var MAINMENU:String = "MAINMENU";
public static var LOSE_GAME:String = "LOSE_GAME";
public static var PLAY_GAME:String = "PLAY_GAME";
public static var WIN_LEVEL:String = "WIN_LEVEL";
public static var SHOW_STATISTICS:String = "SHOW_STATISTICS";
public static var SHOW_MENU:String = "SHOW_MENU";
public static var HOW_TO_PLAY:String = "HOW_TO_PLAY";
public static var GO_LEVEL_SELECT:String = "GO_LEVEL_SELECT";
public static var HIDE_MENU:String = "HIDE_MENU";
public static var DIFFICULT_SELECT:String = "DIFFICULT_SELECT";
public function UIEvent(type:String){
super(type);
}
}
}//package zlong.events
Section 201
//UIManager (zlong.manager.UIManager)
package zlong.manager {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.spilSystemTool.*;
import zlong.ui.*;
import zlong.breathxue.utils.debug.*;
public class UIManager {
private var _root:Sprite;
private var _dispatcher:EventDispatcher;
private var _screen:AbstractScreen;
public static const HELP:String = "HELP";
public static const GAMEMANAGER:String = "GAMEMANAGER";
public static const MENU:String = "MENU";
public static var GAMEUI:String = "GAMEUI";
public static var CUTIN:String = "CUTIN";
public static var LEVELINFORMATION:String = "LEVELINFORMATION";
public static var LEVELMAP:String = "LEVELMAP";
public function UIManager(r:Sprite){
super();
_root = r;
initMainMenu();
initEvent();
this._dispatcher = new EventDispatcher();
}
private function clearScreen():void{
if (_screen){
_screen.destroy();
_screen = null;
};
GC.clear();
}
private function levelCompleted(event:UIEvent):void{
clearScreen();
_screen = new LevelCompleted(_root);
}
private function initMainMenu():void{
clearScreen();
_screen = new MainMenu(_root);
GoogleEvent.instance.gaTrackEvent("mainscreen_viewed", true);
}
private function initEvent():void{
_root.addEventListener(UIEvent.START_GAME, difficultSelect);
_root.addEventListener(UIEvent.HOW_TO_PLAY, howtoplay);
_root.addEventListener(UIEvent.MAINMENU, mainMenu);
_root.addEventListener(UIEvent.GO_LEVEL_SELECT, levelMap);
_root.addEventListener(UIEvent.PLAY_GAME, playGame);
_root.addEventListener(UIEvent.WIN_LEVEL, levelCompleted);
_root.addEventListener(UIEvent.LOSE_LEVEL, levelFailed);
_root.addEventListener(UIEvent.WIN_GAME, gameCompleted);
_root.addEventListener(UIEvent.LOSE_GAME, gameFailed);
}
private function playGame(event:UIEvent):void{
difficultSelect(event);
}
public function howtoplay(event:UIEvent):void{
if (!Main._gameStarted){
Main._gameStarted = true;
};
clearScreen();
_screen = new HowToPlay(_root);
}
private function gameFailed(event:UIEvent):void{
clearScreen();
_screen = new GameFailed(_root, 1);
}
private function levelFailed(event:UIEvent):void{
clearScreen();
_screen = new LevelFailed(_root);
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
private function mainMenu(event:UIEvent):void{
initMainMenu();
}
private function gameCompleted(event:UIEvent):void{
clearScreen();
_screen = new GameFailed(_root, 2);
}
private function difficultSelect(event:UIEvent):void{
clearScreen();
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.PLAY_GAME));
}
private function levelMap(event:UIEvent):void{
clearScreen();
_screen = new LevelMap(_root);
}
}
}//package zlong.manager
Section 202
//Handler (zlong.navigate.Handler)
package zlong.navigate {
import flash.events.*;
import zlong.country.*;
import flash.net.*;
import zlong.*;
import flash.external.*;
public class Handler {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public static function click_gamecn(e:Event=null):void{
var request:URLRequest = new URLRequest("http://www.game.com.cn");
navigateToURL(request, "_blank");
}
public static function click_copyright(e:Event=null):void{
var request:URLRequest;
if (CountryInfo.instance.country == "cn"){
request = new URLRequest("http://www.game.com.cn");
} else {
request = new URLRequest(CountryInfo.instance.copyRightLink);
};
navigateToURL(request, "_blank");
Trace("||Tester||", request.url);
}
public static function refurbish(e:Event=null):void{
var e = e;
ExternalInterface.call("location.reload");
navigateToURL(new URLRequest(ExternalInterface.call("window.location.href.toString")), "_top");
//unresolved jump
var _slot1 = myError;
}
public static function click_thisgame(_position:String):void{
var request:URLRequest;
if (CountryInfo.instance.country == "cn"){
request = new URLRequest(CountryInfo.instance.moreGameLink);
} else {
request = new URLRequest(((CountryInfo.instance.thisGameLink + "&utm_content=") + _position));
};
navigateToURL(request, "_blank");
Trace("||Tester||", request.url);
}
public static function click_moregames(_position:String):void{
var request:URLRequest;
if (CountryInfo.instance.country == "cn"){
request = new URLRequest(CountryInfo.instance.moreGameLink);
} else {
request = new URLRequest(((CountryInfo.instance.moreGameLink + "&utm_content=") + _position));
};
navigateToURL(request, "_blank");
Trace("||Tester||", request.url);
}
}
}//package zlong.navigate
Section 203
//LocalSiteDataLoader (zlong.site.LocalSiteDataLoader)
package zlong.site {
import flash.events.*;
import flash.net.*;
import zlong.*;
public class LocalSiteDataLoader {
private var _localSiteDataLoader:URLLoader;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static var _localSiteDataLoaderFinish:Boolean = true;
public function LocalSiteDataLoader(){
super();
_localSiteDataLoaderFinish = false;
this._localSiteDataLoader = new URLLoader();
this._localSiteDataLoader.dataFormat = URLLoaderDataFormat.TEXT;
this._localSiteDataLoader.addEventListener(IOErrorEvent.IO_ERROR, this.errorHandler);
this._localSiteDataLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.errorHandler);
this._localSiteDataLoader.addEventListener(Event.COMPLETE, this.LocalSiteDataLoaderFinish);
this._localSiteDataLoader.load(new URLRequest(SiteData.URL));
//unresolved jump
var _slot1 = e;
errorHandler();
}
private function LocalSiteDataLoaderFinish(event:Event):void{
SiteData.allowedSite = new XML(this._localSiteDataLoader.data);
_localSiteDataLoaderFinish = true;
SiteInfo.instance.reInit();
this.delLocalSiteDataLoader();
}
private function errorHandler(e:Event=null):void{
SiteData.allowedSite = <sites></sites>
;
_localSiteDataLoaderFinish = true;
SiteInfo.instance.reInit();
this.delLocalSiteDataLoader();
}
private function delLocalSiteDataLoader():void{
this._localSiteDataLoader.removeEventListener(IOErrorEvent.IO_ERROR, this.errorHandler);
this._localSiteDataLoader.removeEventListener(Event.COMPLETE, this.LocalSiteDataLoaderFinish);
this._localSiteDataLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.errorHandler);
this._localSiteDataLoader = null;
}
public static function get localSiteDataLoaderFinish():Boolean{
return (_localSiteDataLoaderFinish);
}
}
}//package zlong.site
Section 204
//SiteData (zlong.site.SiteData)
package zlong.site {
import zlong.*;
public final class SiteData {
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public static const URL:String = "http://www8.agame.com/games/sitelock/sites.xml";
public static var allowedSite:XML = <sites></sites>
;
}
}//package zlong.site
Section 205
//SiteInfo (zlong.site.SiteInfo)
package zlong.site {
import zlong.*;
import zlong.data.*;
import flash.external.*;
public class SiteInfo {
private var _sites:Array;
private var _link:String;
private var _html:String;
private var _domain:String;
private var _allowed:Boolean;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
private static var _instance:SiteInfo;
public function SiteInfo():void{
super();
this.initSites();
this._link = this.getURL();
this._html = this.getHtml(this._link);
this._domain = this.getDomain(this._link);
this._allowed = this.check(this._domain, this._sites);
}
function reInit():void{
this.initSites();
this._link = this.getURL();
this._html = this.getHtml(this._link);
this._domain = this.getDomain(this._link);
this._allowed = this.check(this._domain, this._sites);
}
public function get allowed():Boolean{
if (GameInfo.cnversion){
return (true);
};
return (this._allowed);
}
public function get link():String{
return (this._link);
}
public function get html():String{
return (this._html);
}
public function get domain():String{
return (this._domain);
}
private function initSites():void{
var siteList:XMLList;
var i:int;
this._sites = new Array();
if (SiteData.allowedSite != null){
siteList = SiteData.allowedSite.child("item");
i = 0;
while (i < siteList.length()) {
this._sites.push(siteList[i]);
i++;
};
};
}
private function getURL():String{
var loc:String;
try {
loc = ExternalInterface.call("window.location.href.toString");
//unresolved jump
var _slot1 = e;
loc = "error";
} finally {
};
if ((((loc == null)) || ((loc == "")))){
loc = "error";
};
if (String(loc).indexOf(".swf") != -1){
loc = "error";
};
return (loc);
}
private function getHtml(str:String):String{
var index:int = str.indexOf("?");
if (index != -1){
return (str);
};
return (str.substr(0, index));
}
private function getDomain(w:String):String{
var temp:String = "";
var j:uint = 7;
while (j < w.length) {
if (w.charAt(j) == "/"){
break;
};
temp = (temp + w.charAt(j));
j++;
};
return (temp);
}
private function check(str:String, arr:Array):Boolean{
var i:uint;
while (i < arr.length) {
if (str == arr[i]){
return (true);
};
i++;
};
return (false);
}
public static function get instance():SiteInfo{
if (_instance == null){
_instance = new (SiteInfo);
};
return (_instance);
}
}
}//package zlong.site
Section 206
//Award_HighScore (zlong.spilSystemTool.Award_HighScore)
package zlong.spilSystemTool {
import flash.events.*;
import flash.display.*;
import com.spilgames.api.*;
import zlong.*;
public class Award_HighScore implements IEventDispatcher {
framework_internal static const VERSION:String = "v1.16.201012281612";
public static const AWORD_HIGHSCORE_TOOL_INITIALIZED_COMPONENT:String = "SPILGAMESSERVICS_INITIALIZED_COMPONENT";
public static const AWORD_HIGHSCORE_TOOL_INITIALIZED_FAILED:String = "SPILGAMESSERVICS_INITIALIZED_FAILED";
static var _instance:Award_HighScore;
public function Award_HighScore(){
super();
}
public function init(gameName:String, container:Sprite, debug:Boolean=false, isLive:Boolean=true):void{
if (!SpilSetting._instance){
SpilSetting.instance.init(container, gameName, debug);
};
if (debug){
container.stage.addEventListener(KeyboardEvent.KEY_DOWN, this.keyBoardSendAwards);
};
}
public function isAwardsServiceAvailable():Boolean{
return (AwardsService.isAvailable());
}
public function isScoreServiceAvailable():Boolean{
return (ScoreService.isAvailable());
}
private function keyBoardSendAwards(event:Event):void{
var e:KeyboardEvent = (event as KeyboardEvent);
if (((((e.ctrlKey) && ((e.keyCode > 48)))) && ((e.keyCode < 58)))){
this.submitAchievement(("award" + String.fromCharCode(e.keyCode)));
};
}
public function requestAchievementList():void{
}
public function requestAchievementInfo(id:int):void{
}
public function requestHighScoreList():void{
}
public function requestUserHighScoreList(target_username:String):void{
}
public function submitScore(score):void{
if (ScoreService.isAvailable()){
ScoreService.submitScore(score);
} else {
Trace("||ZFW||", "No...isAvailable");
};
}
public function submitAchievement(achievement):void{
if (AwardsService.isAvailable()){
AwardsService.submitAward(achievement);
} else {
Trace("||ZFW||", "No...isAvailable");
};
}
public function isComponentInitialized():Boolean{
return (((AwardsService.isAvailable()) && (ScoreService.isAvailable())));
}
public function isDomainAllowed():Boolean{
return (this.isComponentInitialized());
}
public function destroy():void{
}
public function dispatchEvent(event:Event):Boolean{
return (SpilSetting.instance.dispatchEvent(event));
}
public function hasEventListener(type:String):Boolean{
return (SpilSetting.instance.hasEventListener(type));
}
public function willTrigger(type:String):Boolean{
return (SpilSetting.instance.willTrigger(type));
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
SpilSetting.instance.removeEventListener(type, listener, useCapture);
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
SpilSetting.instance.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public static function get instance():Award_HighScore{
if (_instance == null){
_instance = new (Award_HighScore);
};
return (_instance);
}
public static function get initializedFinish():Boolean{
if (SpilSetting._instance){
return (SpilSetting.instance.initSpilGamesServices_finish);
};
return (true);
}
}
}//package zlong.spilSystemTool
Section 207
//GoogleEvent (zlong.spilSystemTool.GoogleEvent)
package zlong.spilSystemTool {
import flash.display.*;
import flash.net.*;
import zlong.utils.*;
import com.google.analytics.*;
public class GoogleEvent {
private var _gaGameName:String;
private var _gaTracker:GATracker;
private var _gaEventArr:Array;
private var _gaSharedObject:SharedObject;
framework_internal static const VERSION:String = "v1.16.201012281612";
private static var _instance:GoogleEvent;
public function GoogleEvent():void{
super();
}
public function init(gameName:String, display:DisplayObject, debug:Boolean):void{
var k:String;
this._gaGameName = gameName;
this._gaTracker = new GATracker(display, "UA-6695967-1", "AS3", debug);
this._gaEventArr = new Array();
this._gaSharedObject = SharedObjectUtil.getLocal("googleEvent");
for (k in this._gaSharedObject.data) {
this._gaEventArr.push(k);
};
}
public function gaTrackEvent(eventName:String, isRepeatedInOneGame:Boolean=false, isRepeatedInOnePC:Boolean=true):void{
var i:int;
if (((!(isRepeatedInOnePC)) || (!(isRepeatedInOneGame)))){
i = 0;
while (i < this._gaEventArr.length) {
if (eventName == this._gaEventArr[i]){
return;
};
i++;
};
if (!isRepeatedInOnePC){
this._gaSharedObject.data[eventName] = 1;
SharedObjectUtil.save(this._gaSharedObject);
};
this._gaEventArr.push(eventName);
};
this._gaTracker.trackEvent(this._gaGameName, eventName, "per session", 0);
}
public static function get instance():GoogleEvent{
if (_instance == null){
_instance = new (GoogleEvent);
};
return (_instance);
}
}
}//package zlong.spilSystemTool
Section 208
//SpilSetting (zlong.spilSystemTool.SpilSetting)
package zlong.spilSystemTool {
import flash.events.*;
import flash.display.*;
import com.spilgames.api.*;
import zlong.*;
import flash.utils.*;
public class SpilSetting implements IEventDispatcher {
private var _isDebug:Boolean;
private var _spilGamesServices:SpilGamesServices;
private var _outTimer:Timer;
framework_internal static const VERSION:String = "v1.16.201012281612";
public static const SPILGAMESSERVICS_INITIALIZED_COMPONENT:String = "SPILGAMESSERVICS_INITIALIZED_COMPONENT";
public static const SPILGAMESSERVICS_INITIALIZED_FAILED:String = "SPILGAMESSERVICS_INITIALIZED_FAILED";
private static const MAX_CONNECT_TIME:int = 15;
private static var _initSpilGamesServices_finish:Boolean = true;
static var _instance:SpilSetting;
public function SpilSetting(){
super();
}
public function init(disObj:Sprite, gameName:String, isDebug:Boolean=false):void{
var disObj = disObj;
var gameName = gameName;
var isDebug = isDebug;
if (this._spilGamesServices){
return;
};
this._isDebug = isDebug;
if (disObj.stage == null){
throw (new ArgumentError("disObj need be added in stage"));
};
this._outTimer = new Timer((MAX_CONNECT_TIME * 1000), 1);
this._outTimer.start();
this._outTimer.addEventListener(TimerEvent.TIMER_COMPLETE, this.onTimerend_initSpilGamesServices);
_initSpilGamesServices_finish = false;
this._spilGamesServices = SpilGamesServices.getInstance();
this._spilGamesServices.addEventListener("servicesReady", this.onServicesReady);
this._spilGamesServices.addEventListener("servicesFailed", this.onServicesFailed);
this._spilGamesServices.connect(disObj);
//unresolved jump
var _slot1 = error;
onServicesFailed();
}
private function onTimerend_initSpilGamesServices(event:TimerEvent):void{
Trace("||ZFW||", "10second TimeOut--onTimerend_initSpilGamesServices");
this._spilGamesServices.dispatchEvent(new ErrorEvent("servicesFailed", false, false, ":connect_Timeout"));
}
private function onServicesReady(event:Event):void{
this._outTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, this.onTimerend_initSpilGamesServices);
this._outTimer.stop();
this._outTimer = null;
this._spilGamesServices.removeEventListener("servicesReady", this.onServicesReady);
this._spilGamesServices.removeEventListener("servicesFailed", this.onServicesFailed);
if (this._isDebug){
Trace("||ZFW||", ("SpilSetting_SpilGamesServices_Initialized_Complete::" + event));
};
_initSpilGamesServices_finish = true;
}
private function onServicesFailed(event:ErrorEvent=null):void{
this._outTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, this.onTimerend_initSpilGamesServices);
this._outTimer.stop();
this._outTimer = null;
this._spilGamesServices.removeEventListener("servicesReady", this.onServicesReady);
this._spilGamesServices.removeEventListener("servicesFailed", this.onServicesFailed);
if (this._isDebug){
Trace("||ZFW||", ("SpilSetting_SpilGamesServices_Initialize_Failed:" + event.text));
};
_initSpilGamesServices_finish = true;
}
public function checkUserLogin():Boolean{
if (this._spilGamesServices){
return (!(User.isGuest()));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function get itemId():String{
if (this._spilGamesServices){
return (String(this._spilGamesServices.getItemID()));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function get siteId():String{
if (this._spilGamesServices){
return (String(this._spilGamesServices.getSiteID()));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function get username():String{
if (this._spilGamesServices){
return (User.getUserName());
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function get hash():String{
if (this._spilGamesServices){
return (User.getUserHash());
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function get initSpilGamesServices_finish():Boolean{
if (this._spilGamesServices){
return (_initSpilGamesServices_finish);
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function dispatchEvent(event:Event):Boolean{
if (this._spilGamesServices){
return (this._spilGamesServices.dispatchEvent(event));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function hasEventListener(type:String):Boolean{
if (this._spilGamesServices){
return (this._spilGamesServices.hasEventListener(type));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function willTrigger(type:String):Boolean{
if (this._spilGamesServices){
return (this._spilGamesServices.willTrigger(type));
};
throw (new ArgumentError("SpilSetting didn`t init"));
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
if (this._spilGamesServices){
this._spilGamesServices.removeEventListener(type, listener);
} else {
throw (new ArgumentError("SpilSetting didn`t init"));
};
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
if (this._spilGamesServices){
this._spilGamesServices.addEventListener(type, listener);
} else {
throw (new ArgumentError("SpilSetting didn`t init"));
};
}
public static function get instance():SpilSetting{
if (_instance == null){
_instance = new (SpilSetting);
};
return (_instance);
}
}
}//package zlong.spilSystemTool
Section 209
//Ball (zlong.synge.demo.Ball)
package zlong.synge.demo {
import flash.display.*;
import flash.events.*;
import zlong.synge.synge_code_lab.utils.*;
public class Ball {
private var _radiu:uint;
private var _inde:uint;
private var _dispatcher:EventDispatcher;
private var _bdm_1:Bitmap;
private var _bdm_2:Bitmap;
private var _bdm_3:Bitmap;
private var _bdm_4:Bitmap;
private var _bdm_5:Bitmap;
private var _bdm_6:Bitmap;
private var _color:uint;
private var __mc:Sprite;
private var _x:Number;
private var _y:Number;
private static const _ball_1:Ball_1 = new Ball_1();
private static const _ball_2:Ball_2 = new Ball_2();
private static const _ball_3:Ball_3 = new Ball_3();
private static const _ball_4:Ball_4 = new Ball_4();
private static const _ball_6:Ball_6 = new Ball_6();
private static const _ball_5:Ball_5 = new Ball_5();
private static const COLOR_NUM:uint = 6;
public static const COLOR_1:uint = 3393042;
public static const COLOR_2:uint = 0x999900;
public static const COLOR_3:uint = 10055899;
public static const COLOR_4:uint = 0x669900;
public static const COLOR_5:uint = 6700947;
public static const COLOR_6:uint = 6729207;
private static var _bd_2:BitmapData;
public static var transStep:Number = Number((3 / Root.GAME_FRAMERATE));
private static var _bd_4:BitmapData;
private static var _bd_5:BitmapData;
private static var _bd_6:BitmapData;
private static var _bd_1:BitmapData;
private static var _bd_3:BitmapData;
public function Ball($pmc:Sprite, $inde:uint, $radiu:uint){
super();
this._dispatcher = new EventDispatcher();
this._inde = $inde;
this._radiu = $radiu;
if ($radiu <= 0){
throw (new Error("Radius is too small!"));
};
this.__mc = new Sprite();
this._setDis();
$pmc.addChild(this.__mc);
this.x = 0;
this.y = 0;
this.randomColor();
}
public function set y($v:Number):void{
this._y = $v;
if (this.__mc){
this.__mc.y = this._y;
};
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
public function del():void{
var bdm:Bitmap;
var i:uint = 1;
while (i < Ball.COLOR_NUM) {
bdm = this[("_bdm_" + i)];
if (bdm){
DisplayHand.removeFormParent(bdm);
this[("_bdm_" + i)] = null;
};
i++;
};
if (this.__mc){
this.__mc.graphics.clear();
if (this.__mc.parent){
this.__mc.parent.removeChild(this.__mc);
};
this.__mc = null;
};
if (this._dispatcher){
this._dispatcher = null;
};
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func, false);
}
public function set color(value:uint):void{
this._color = value;
if (this.__mc){
this.drawDis(this._color);
};
}
public function transUpdate():void{
if (this.getScaleNormal()){
return;
};
if (this.__mc.scaleX < 1){
this.__mc.scaleX = (this.__mc.scaleX + Ball.transStep);
} else {
if (this.__mc.scaleX > 1){
this.__mc.scaleX = 1;
};
};
this.__mc.scaleY = this.__mc.scaleX;
if (this.__mc.scaleX == 1){
this._dispatcher.dispatchEvent(new TransFormEvent(TransFormEvent.TRANSFORM_END, false, this));
};
}
public function set scale($v:Number):void{
this.__mc.scaleX = $v;
this.__mc.scaleY = $v;
}
public function get y():Number{
return (this._y);
}
public function get inde():uint{
return (this._inde);
}
public function randomColor():void{
this.color = Math.ceil((Math.random() * Ball.COLOR_NUM));
}
public function get color():uint{
return (this._color);
}
private function _setDis():void{
var bdm:Bitmap;
var i:uint = 1;
while (i < 7) {
bdm = new Bitmap(Ball[("_bd_" + i)]);
bdm.smoothing = false;
bdm.pixelSnapping = PixelSnapping.ALWAYS;
bdm.x = -(Board.GRIDSIZE);
bdm.y = -(Board.GRIDSIZE);
bdm.scaleX = (bdm.scaleY = 0.5);
this[("_bdm_" + i)] = bdm;
i++;
};
}
public function set x($v:Number):void{
this._x = $v;
if (this.__mc){
this.__mc.x = this._x;
};
}
private function drawDis($color):void{
DisplayHand.removeAllChild(this.__mc);
this.__mc.addChild(this[("_bdm_" + $color)]);
}
public function get x():Number{
return (this._x);
}
public function hasEventListener($type:String):Boolean{
if (!this._dispatcher){
return (false);
};
return (this._dispatcher.hasEventListener($type));
}
private function getScaleNormal():Boolean{
if ((((this.__mc.scaleX == 1)) && ((this.__mc.scaleY == 1)))){
return (true);
};
return (false);
}
public static function init():void{
var bd:BitmapData;
var i:uint = 1;
while (i < 7) {
bd = DisplayHand.getBitmapData(Ball[("_ball_" + i)], 0, 0, (Board.GRIDSIZE * 2), (Board.GRIDSIZE * 2), false);
Ball[("_bd_" + i)] = bd;
i++;
};
}
}
}//package zlong.synge.demo
Section 210
//Board (zlong.synge.demo.Board)
package zlong.synge.demo {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import zlong.synge.synge_code_lab.utils.*;
public class Board {
private var __mc:Sprite;
private var waveing:Boolean;
private var _dis:EventDispatcher;
private var _low:uint;// = 14
private var _childTransArr:Array;
private var waveLow:uint;
private var waveRow:uint;
private var _row:uint;// = 14
private var _ballArr:Array;
private var waveArr:Array;
private var waveC:uint;
private var waveT:uint;
public static const KEY:Object = {num1:49, num2:50, num3:51, num4:52, num5:53, num6:54, num7:55};
public static const GRIDSIZE:uint = 11;
public function Board($pmc:Sprite):void{
_dis = new EventDispatcher();
super();
this.__mc = new Sprite();
$pmc.addChild(this.__mc);
this._ballArr = new Array();
this._childTransArr = new Array();
this.creatAllBall();
}
public function get low():uint{
return (_low);
}
private function removeFromTransArr($ball:Ball):void{
ArrayHand.spliceFromArr($ball, this._childTransArr);
}
public function removeEventListener($type:String, $fun:Function):void{
this._dis.removeEventListener($type, $fun);
}
public function del():void{
var i:Ball;
if (this._ballArr){
for each (i in this._ballArr) {
if (i.hasEventListener(TransFormEvent.TRANSFORM_END)){
i.removeEventListener(TransFormEvent.TRANSFORM_END, this.onTransEnd);
};
i.del();
};
ArrayHand.spliceAll_arr_1(this._ballArr);
this._ballArr = null;
};
if (this._childTransArr){
ArrayHand.spliceAll_arr_1(this._childTransArr);
this._childTransArr = null;
};
if (this.__mc){
if (this.__mc.parent){
this.__mc.parent.removeChild(this.__mc);
};
this.__mc = null;
};
if (this._dis){
this._dis = null;
};
}
public function addEventListener($type:String, $fun:Function):void{
this._dis.addEventListener($type, $fun, false, 0, false);
}
public function startWave($waveArr:Array):void{
this.waveLow = 1;
this.waveRow = 1;
this.waveing = true;
this.waveArr = $waveArr;
this.waveC = 0;
this.waveT = ArrayHand.getArrLength_Null(this.waveArr);
ArrayHand.spliceAll_arr_1(this._childTransArr);
this._childTransArr = new Array();
}
public function update():void{
var k:Ball;
var ball:Ball;
var i:uint;
var j:uint;
for each (k in this._childTransArr) {
k.transUpdate();
};
if (this.waveing){
i = 0;
while (i < this.waveLow) {
j = 0;
while (j < this.waveRow) {
ball = this._ballArr[((i * this.row) + j)];
if (ArrayHand.checkInArr(ball, this.waveArr)){
this.addToTransArr(ball);
ball.addEventListener(TransFormEvent.TRANSFORM_END, this.onTransEnd);
};
j++;
};
i++;
};
this.waveLow++;
this.waveRow++;
if (this.waveLow > this.low){
this.waveLow = this.low;
};
if (this.waveRow > this.row){
this.waveRow = this.row;
};
return;
};
if (!GameStart.transEnable){
return;
};
var downKey:uint;
if (ListenKey.isPressed(Board.KEY["num1"])){
downKey = 1;
} else {
if (ListenKey.isPressed(Board.KEY["num2"])){
downKey = 2;
} else {
if (ListenKey.isPressed(Board.KEY["num3"])){
downKey = 3;
} else {
if (ListenKey.isPressed(Board.KEY["num4"])){
downKey = 4;
} else {
if (ListenKey.isPressed(Board.KEY["num5"])){
downKey = 5;
} else {
if (ListenKey.isPressed(Board.KEY["num6"])){
downKey = 6;
} else {
if (ListenKey.isPressed(Board.KEY["num7"])){
downKey = 7;
};
};
};
};
};
};
};
if (downKey){
GameStart.transEnable = false;
if (this._dis){
this._dis.dispatchEvent(new SelectEvent(SelectEvent.SELECT, false, downKey));
};
};
}
private function onTransEnd(evt:TransFormEvent):void{
var ball:Ball = evt.getBall();
if (!ball){
throw (new Error("the ball is null"));
};
evt.stopPropagation();
ball.removeEventListener(evt.type, this.onTransEnd);
this.waveC++;
if (this.waveC >= this.waveT){
this.waveing = false;
this._dis.dispatchEvent(new TransFormEvent(TransFormEvent.TRANSFORM_END_ALL, false));
return;
};
}
public function get row():uint{
return (_row);
}
public function getDisPos():Point{
var point:Point = new Point();
if (this.__mc){
point.x = this.__mc.x;
point.y = this.__mc.y;
};
return (point);
}
public function reAllBall():void{
var j:Ball;
if (this._ballArr){
for each (j in this._ballArr) {
j.randomColor();
};
this.defendSame();
};
}
public function get ballArr():Array{
return (_ballArr);
}
public function hasEventListener($type:String):Boolean{
return (this._dis.hasEventListener($type));
}
private function addToTransArr($ball:Ball):void{
if (ArrayHand.checkInArr($ball, this._childTransArr)){
return;
};
this._childTransArr.push($ball);
$ball.scale = 0.5;
}
private function creatAllBall():void{
var ball:Ball;
var i:uint;
var j:uint;
if (this.__mc){
i = 0;
while (i < this._low) {
j = 0;
while (j < this._row) {
ball = new Ball(this.__mc, ((i * _row) + j), Board.GRIDSIZE);
ball.x = (Board.GRIDSIZE + ((j * Board.GRIDSIZE) * 2));
ball.y = (Board.GRIDSIZE + ((i * Board.GRIDSIZE) * 2));
this._ballArr.push(ball);
j++;
};
i++;
};
};
this.defendSame();
}
private function defendSame():void{
var type:uint;
var isAllSame:Boolean;
var i:uint;
var j:Ball;
if (this._ballArr){
type = Ball(this._ballArr[0]).color;
isAllSame = true;
i = 1;
while (i < this._ballArr.length) {
if (Ball(this._ballArr[i]).color != type){
isAllSame = false;
break;
};
i++;
};
if (isAllSame){
for each (j in this._ballArr) {
j.randomColor();
};
this.defendSame();
return;
};
};
}
public function setPos($p:Point):void{
if (this.__mc){
this.__mc.x = $p.x;
this.__mc.y = $p.y;
};
}
}
}//package zlong.synge.demo
Section 211
//Button_3f (zlong.synge.demo.Button_3f)
package zlong.synge.demo {
import flash.display.*;
import flash.events.*;
import zlong.utils.*;
import zlong.synge.synge_code_lab.utils.*;
public class Button_3f {
private var _dispatcher:EventDispatcher;
private var __mc:MovieClip;
public function Button_3f($target:MovieClip):void{
super();
this.__mc = $target;
this.__mc.stop();
this.__mc.mouseChildren = false;
this.__mc.buttonMode = true;
this._dispatcher = new EventDispatcher();
this._initEvent();
}
private function _on_MouseDown(evt:MouseEvent):void{
MovieClip(evt.currentTarget).gotoAndStop("down");
SoundsManager.instance.playSound("menu_press", 1);
evt.stopPropagation();
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
private function _initEvent():void{
this.__mc.addEventListener(MouseEvent.MOUSE_OVER, this._on_MouseOver);
this.__mc.addEventListener(MouseEvent.MOUSE_OUT, this._on_MouseOut);
this.__mc.addEventListener(MouseEvent.MOUSE_DOWN, this._on_MouseDown);
this.__mc.addEventListener(MouseEvent.MOUSE_UP, this._on_MouseUp);
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
private function _on_MouseOut(evt:MouseEvent):void{
MovieClip(evt.currentTarget).gotoAndStop("normal");
evt.stopPropagation();
}
public function del():void{
if (this._dispatcher){
this._dispatcher = null;
};
if (this.__mc){
this.__mc.removeEventListener(MouseEvent.MOUSE_OVER, this._on_MouseOver);
this.__mc.removeEventListener(MouseEvent.MOUSE_OUT, this._on_MouseOut);
this.__mc.removeEventListener(MouseEvent.MOUSE_DOWN, this._on_MouseDown);
this.__mc.removeEventListener(MouseEvent.MOUSE_UP, this._on_MouseUp);
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
};
}
private function _on_MouseOver(evt:MouseEvent):void{
MovieClip(evt.currentTarget).gotoAndStop("over");
SoundsManager.instance.playSound("menu_touch", 1);
evt.stopPropagation();
}
private function _on_MouseUp(evt:MouseEvent):void{
this._on_MouseOver(evt);
this._dispatcher.dispatchEvent(evt);
evt.stopPropagation();
}
}
}//package zlong.synge.demo
Section 212
//GameStart (zlong.synge.demo.GameStart)
package zlong.synge.demo {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.spilSystemTool.*;
import zlong.data.*;
import zlong.utils.*;
import zlong.synge.synge_code_lab.utils.*;
public class GameStart {
private var _kuoshanArr:Array;
private var _statisMc:Statis;
private var _comboC:uint;
private var _myBallArr:Array;
private var _gameUI:GameUI;
private var _UI:Sprite;
private var _myArrLeng:uint;
private var _dispatcher:EventDispatcher;
private var _GAME:Sprite;
private var _BG:Sprite;
private var _board:Board;
private var _menuMc:Menu;
private var __mc:Sprite;
private var _shineMask:ShineMask;
private var _transBallArr:Array;
public static var level:uint = 1;
public static var boundC:uint;
public static var transEnable:Boolean = true;
public static var step:Number;
public static var startStep:uint = 32;
public static var gameIng:Boolean = false;
public static var score:Number = 0;
public static var levelT:uint = 10;
public static var shuffleC:uint = 0;
public static var old_step:Number;
public static var gameStarted:Boolean = false;
private static var _instance:GameStart;
public static var shuffleT:uint = 2;
public function GameStart($yz:Private=null):void{
super();
if (!$yz){
throw (new Error("warn: single mode"));
};
this._dispatcher = new EventDispatcher();
}
private function _onShowStatis(evt:UIEvent):void{
this._statisMc = new Statis(this._UI);
this._statisMc.addEventListener(UIEvent.HIDE_STATISTICS, this._onHideStatis);
evt.stopPropagation();
}
private function _goMenu(e:UIEvent):void{
this._menuMc = new Menu(this._UI);
this._menuMc.addEventListener(UIEvent.HIDE_MENU, _onHideMenu);
this._menuMc.addEventListener(UIEvent.MAINMENU, _goMainMenu);
this._menuMc.addEventListener(UIEvent.HOW_TO_PLAY, _onHelp);
e.stopPropagation();
}
private function kuoshan($ball:Ball, $board:Board, $color:uint):void{
var tinde:int;
if (((((!($ball)) || (!(($ball.color == $color))))) || (!($board)))){
return;
};
var Inde:uint = $ball.inde;
var arr:Array = $board.ballArr;
var lowT:uint = $board.low;
var rowT:uint = $board.row;
if (this._kuoshanArr[Inde] == $ball){
return;
};
if (this._myBallArr[Inde] != $ball){
this._myBallArr[Inde] = $ball;
this._shineMask.showVisble(Inde);
GameStart.score = (GameStart.score + 5);
this._comboC++;
};
this._kuoshanArr[Inde] = $ball;
if (Inde > rowT){
tinde = (Inde - rowT);
kuoshan((arr[tinde] as Ball), $board, $color);
};
if ((Inde % rowT) != (rowT - 1)){
tinde = (Inde + 1);
kuoshan((arr[tinde] as Ball), $board, $color);
};
if (Inde < (lowT * (rowT - 1))){
tinde = (Inde + rowT);
kuoshan((arr[tinde] as Ball), $board, $color);
};
if ((Inde % rowT) != 0){
tinde = (Inde - 1);
kuoshan((arr[tinde] as Ball), $board, $color);
};
}
private function wave($index:uint=0):void{
}
public function del():void{
var i:Ball;
this._onHideMenu();
if (this._statisMc){
this._statisMc.removeEventListener(UIEvent.HIDE_STATISTICS, this._onHideStatis);
this._statisMc.del();
this._statisMc = null;
};
if (this._kuoshanArr){
ArrayHand.spliceAll_arr_1(this._kuoshanArr);
this._kuoshanArr = null;
};
if (this._transBallArr){
ArrayHand.spliceAll_arr_1(this._transBallArr);
this._transBallArr = null;
};
if (this._myBallArr){
for each (i in this._myBallArr) {
i.del();
};
ArrayHand.spliceAll_arr_1(this._myBallArr);
this._myBallArr = null;
};
if (this._shineMask){
this._shineMask.del();
this._shineMask = null;
};
if (this._board){
if (this._board.hasEventListener(SelectEvent.SELECT)){
this._board.removeEventListener(SelectEvent.SELECT, this.transform);
};
this._board.del();
this._board = null;
};
if (this._gameUI){
this._gameUI.removeEventListener(SelectEvent.SELECT, this.transform);
this._gameUI.removeEventListener(UIEvent.SHOW_STATISTICS, this._onShowStatis);
this._gameUI.removeEventListener(UIEvent.HIDE_STATISTICS, this._onHideStatis);
this._gameUI.removeEventListener(UIEvent.LOSE_GAME, this._onLoseGame);
this._gameUI.removeEventListener(UIEvent.MAINMENU, this._goMainMenu);
this._gameUI.removeEventListener(UIEvent.SHOW_MENU, this._goMenu);
this._gameUI.del();
this._gameUI = null;
};
if (this._UI){
DisplayHand.removeFormParent(this._UI);
this._UI = null;
};
if (this._GAME){
DisplayHand.removeFormParent(this._GAME);
this._GAME = null;
};
if (this._BG){
DisplayHand.removeFormParent(this._BG);
this._BG = null;
};
if (this.__mc){
if (this.__mc.hasEventListener(Event.ENTER_FRAME)){
this.__mc.removeEventListener(Event.ENTER_FRAME, this.mainLoop);
};
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
};
}
private function reAllBall():void{
if (this._board){
this._board.reAllBall();
this._myBallArr = new Array();
this._myBallArr[0] = this._board.ballArr[0];
this._shineMask.showVisble(0);
};
}
private function subStep($s:uint):void{
if (GameStart.old_step >= $s){
GameStart.old_step = (GameStart.old_step - $s);
} else {
if (GameStart.step >= $s){
GameStart.step = (GameStart.step - $s);
};
};
if (this._gameUI){
this._gameUI.updateTxtStep(GameStart.step, GameStart.old_step);
};
}
private function onTransEndAll(evt:TransFormEvent):void{
GameStart.transEnable = true;
this._kuoshanArr = [];
if (this._board){
this._board.removeEventListener(TransFormEvent.TRANSFORM_END_ALL, this.onTransEndAll);
};
if (this.checkWin()){
this.nextLevel();
} else {
if (GameStart.step <= 0){
this.gameFail();
};
};
}
private function gameFail():void{
GameStart.gameIng = false;
this._gameUI.showNoTurn();
}
private function checkWin():Boolean{
var ball:Ball;
if (((!(this._board)) || (!(this._board.ballArr)))){
return (false);
};
var tar:uint = Ball(this._board.ballArr[0]).color;
var i:uint;
while (i < this._board.ballArr.length) {
ball = this._board.ballArr[i];
if (ball.color != tar){
return (false);
};
i++;
};
if (tar == 5){
Award_HighScore.instance.submitAchievement("award4");
};
trace((("You Win ! Level" + GameStart.level) + " completed !"));
return (true);
}
private function updateStep():void{
if (GameStart.level){
GameStart.step = (GameStart.startStep - ((GameStart.level - 1) * 2));
if (this._gameUI){
this._gameUI.updateTxtStep(GameStart.step, GameStart.old_step);
};
};
}
private function updateLevel():void{
if (this._gameUI){
this._gameUI.updateTxtLevel(GameStart.level);
};
}
public function startLevel($level:uint, $rootMc:Sprite):void{
if (Main.gameinHelp){
return;
};
this.del();
this.initData($level, $rootMc);
SoundsManager.instance.fadeInMusic("fruit_game");
}
private function _onLoseGame(evt:UIEvent):void{
this.del();
this._dispatcher.dispatchEvent(new UIEvent(evt.type));
evt.stopPropagation();
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
public function nextLevel():void{
SoundsManager.instance.playSound("nextlevel", 1);
GameStart.transEnable = false;
Data.userProfile.winCount++;
Data.saveUserProfile();
GameStart.score = (GameStart.score + 1000000);
if (this._gameUI){
this._gameUI.updateTxtScore(GameStart.score);
};
GameStart.old_step = (GameStart.step + GameStart.old_step);
if (GameStart.old_step > 0){
GameStart.boundC++;
if (GameStart.boundC == 3){
Award_HighScore.instance.submitAchievement("award3");
};
} else {
GameStart.boundC = 0;
};
if (GameStart.level == 1){
Award_HighScore.instance.submitAchievement("award1");
GoogleEvent.instance.gaTrackEvent("level1_complete");
} else {
if (GameStart.level == 8){
Award_HighScore.instance.submitAchievement("award5");
};
};
if (GameStart.level < GameStart.levelT){
GameStart.level++;
if (this._gameUI){
this._gameUI.updateTxtLevel(GameStart.level);
};
} else {
GoogleEvent.instance.gaTrackEvent("game_complete");
this.del();
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.WIN_GAME));
return;
};
this._gameUI.showLU();
this._shineMask.restart();
this._myBallArr = [];
this.updateStep();
GameStart.shuffleC = 0;
if (this._gameUI){
this._gameUI.suffleStart();
};
GameStart.transEnable = true;
GameStart.gameStarted = false;
GameStart.gameIng = true;
this.reAllBall();
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
private function initData($level:uint, rootMc:Sprite):void{
transEnable = true;
gameStarted = false;
shuffleC = 0;
gameIng = true;
score = 0;
level = $level;
old_step = 0;
boundC = 0;
this.__mc = new Sprite();
rootMc.addChild(this.__mc);
this._BG = new Sprite();
this.__mc.addChild(this._BG);
this._GAME = new Sprite();
this.__mc.addChild(this._GAME);
this._UI = new Sprite();
this.__mc.addChild(this._UI);
this._gameUI = new GameUI(this._BG, this._UI);
this._gameUI.addEventListener(SelectEvent.SELECT, this.transform);
this._gameUI.addEventListener(UIEvent.SHOW_MENU, _goMenu);
this._gameUI.addEventListener(UIEvent.LOSE_GAME, this._onLoseGame);
this._gameUI.addEventListener(UIEvent.SHOW_STATISTICS, this._onShowStatis);
this._board = new Board(this._GAME);
this._board.setPos(this._gameUI.getStartPoint());
this._board.addEventListener(SelectEvent.SELECT, this.transform);
this._shineMask = new ShineMask(this._GAME, this._board);
this._kuoshanArr = new Array();
this._myBallArr = new Array();
this._transBallArr = new Array();
this._comboC = 0;
this.updateStep();
this.updateLevel();
this.__mc.addEventListener(Event.ENTER_FRAME, this.mainLoop);
}
private function _goMainMenu(evt:UIEvent):void{
this.del();
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.MAINMENU));
}
private function _onHideMenu(e:UIEvent=null):void{
Main.gameinHelp = false;
if (this._menuMc){
this._menuMc.removeEventListener(UIEvent.HIDE_MENU, _onHideMenu);
this._menuMc.removeEventListener(UIEvent.MAINMENU, _goMainMenu);
this._menuMc.removeEventListener(UIEvent.HOW_TO_PLAY, _onHelp);
this._menuMc.del();
this._menuMc = null;
};
if (e){
e.stopImmediatePropagation();
};
}
private function transform($evt:SelectEvent):void{
var i:Ball;
if (!GameStart.gameIng){
return;
};
var key:uint = $evt.getKey();
if (key == 7){
if (!GameStart.gameStarted){
if (GameStart.shuffleC < GameStart.shuffleT){
GameStart.shuffleC++;
this.reAllBall();
if (GameStart.shuffleC == GameStart.shuffleT){
if (this._gameUI){
this._gameUI.suffleEnd();
};
};
};
};
GameStart.transEnable = true;
return;
};
var ball:Ball = this._board.ballArr[0];
var nowColor:uint = ball.color;
if (key == nowColor){
GameStart.transEnable = true;
return;
};
if (!GameStart.gameStarted){
GameStart.gameStarted = true;
if (this._gameUI){
this._gameUI.suffleEnd();
};
};
this._shineMask.show();
SoundsManager.instance.playSound("fruit_change", 1);
this.subStep(1);
this._comboC = 0;
this.kuoshan(ball, this._board, nowColor);
if (this._comboC >= 20){
GameStart.score = (GameStart.score + 10000);
Award_HighScore.instance.submitAchievement("award2");
if (this._gameUI){
this._gameUI.show1w();
};
};
trace("comboC:", this._comboC);
if (this._gameUI){
this._gameUI.updateTxtScore(GameStart.score);
};
for each (i in this._myBallArr) {
i.color = key;
};
this._myArrLeng = ArrayHand.getArrLength_Null(this._myBallArr);
ArrayHand.spliceAll_arr_1(this._transBallArr);
this._transBallArr = new Array();
this._board.startWave(this._myBallArr);
this._board.addEventListener(TransFormEvent.TRANSFORM_END_ALL, this.onTransEndAll);
}
private function _onHelp(e:UIEvent):void{
Main.gameinHelp = true;
this._dispatcher.dispatchEvent(new UIEvent(e.type));
e.stopPropagation();
}
private function mainLoop(evt:Event):void{
if (this._board){
this._board.update();
};
if (this._shineMask){
this._shineMask.update();
};
if (this._gameUI){
this._gameUI.scoreEffectRun();
};
}
private function _onHideStatis(evt:UIEvent):void{
if (this._statisMc){
this._statisMc.removeEventListener(UIEvent.HIDE_STATISTICS, this._onHideStatis);
this._statisMc.del();
this._statisMc = null;
};
evt.stopPropagation();
}
public static function instance():GameStart{
if (!GameStart._instance){
GameStart._instance = new GameStart(new Private());
};
return (GameStart._instance);
}
}
}//package zlong.synge.demo
class Private {
private function Private(){
super();
}
}
Section 213
//GameUI (zlong.synge.demo.GameUI)
package zlong.synge.demo {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.utils.*;
import flash.geom.*;
import flash.text.*;
import zlong.synge.synge_code_lab.utils.*;
public class GameUI {
private var _levelUp:MovieClip;
private var _totalNum:Sprite;
private var _s8D:uint;
private var _effect1w:MovieClip;
private var _txtStep:TextField;
private var _s9D:uint;
private var _s1D:uint;
private var _menuBt:Button_3f;
private var _effectExtra:MovieClip;
private var _dispatcher:EventDispatcher;
private var _s2D:uint;
private var _txtLevel:TextField;
private var _bt_1:MovieClip;
private var _bt_2:MovieClip;
private var _bt_3:MovieClip;
private var _bt_4:MovieClip;
private var _bt_5:MovieClip;
private var _bt_6:MovieClip;
private var _s3D:uint;
private var __mc:Sprite;
private var _s4D:uint;
private var _showExtra:MovieClip;
private var _score:Number;
private var _s5D:uint;
private var _shuffleBt:MovieClip;
private var _s1:MovieClip;
private var _s2:MovieClip;
private var _s3:MovieClip;
private var _s4:MovieClip;
private var _s5:MovieClip;
private var _s6:MovieClip;
private var _s7:MovieClip;
private var _s8:MovieClip;
private var _s6D:uint;
private var _statisBt:Button_3f;
private var _s9:MovieClip;
private var _txtExtra:TextField;
private var _s7D:uint;
private var _noturn:MovieClip;
public function GameUI($pmc:Sprite, $pui:Sprite){
super();
this.__mc = new UI_game_in();
$pmc.addChild(this.__mc);
this._totalNum = this.__mc["totalNum"];
this._statisBt = new Button_3f(this.__mc["statisBt"]);
this._menuBt = new Button_3f(this.__mc["menuBt"]);
this._shuffleBt = this.__mc["shuffleBt"];
this._showExtra = this.__mc["showExtra"];
this._effectExtra = this.__mc["effectExtra"];
this._effect1w = this.__mc["effectScore1w"];
this._effect1w.gotoAndStop(1);
this._levelUp = this.__mc["levelUp"];
this._levelUp.gotoAndStop(1);
this._noturn = this.__mc["noturn"];
this._noturn.gotoAndStop(1);
this._noturn.addFrameScript((this._noturn.totalFrames - 1), this._onGameFail);
this._effectExtra.gotoAndStop(this._effectExtra.totalFrames);
$pui.addChild(this._effectExtra);
$pui.addChild(this._levelUp);
$pui.addChild(this._noturn);
this._showExtra.visible = false;
var i:uint = 1;
while (i < 7) {
this[("_bt_" + i)] = this.__mc[("bt_" + i)];
this[("_bt_" + i)].stop();
i++;
};
i = 1;
while (i < 10) {
this[("_s" + i)] = this.__mc["totalNum"][("s" + i)];
this[("_s" + i)].gotoAndStop("end");
this[(("_s" + i) + "D")] = 0;
i++;
};
this._shuffleBt.stop();
this._txtLevel = this.__mc["txtLevel"];
this._txtStep = this.__mc["txtStep"];
this._txtExtra = this.__mc["txtExtra"];
this.updateTxtScore(0);
this._dispatcher = new EventDispatcher();
this._statisBt.addEventListener(MouseEvent.MOUSE_UP, this._onStatis);
this._menuBt.addEventListener(MouseEvent.MOUSE_UP, _goMenu);
this.showType();
}
public function del():void{
var temp:MovieClip;
var temp1:MovieClip;
if (this._noturn){
DisplayHand.removeFormParent(this._noturn);
this._noturn = null;
};
if (this._levelUp){
DisplayHand.removeFormParent(this._levelUp);
this._levelUp = null;
};
if (this._effect1w){
DisplayHand.removeFormParent(this._effect1w);
this._effect1w = null;
};
if (this._statisBt){
this._statisBt.removeEventListener(MouseEvent.MOUSE_UP, this._onStatis);
this._statisBt.del();
this._statisBt = null;
};
if (this._menuBt){
this._menuBt.removeEventListener(MouseEvent.MOUSE_UP, this._goMenu);
this._menuBt.del();
this._menuBt = null;
};
var i:* = 1;
while (i <= 6) {
temp = this[("_bt_" + i)];
if (!temp){
break;
};
temp.removeEventListener(MouseEvent.ROLL_OVER, this._onRollOver);
temp.removeEventListener(MouseEvent.ROLL_OUT, this._onRollOut);
temp.removeEventListener(MouseEvent.CLICK, this.onMouseDown);
this[("_bt_" + i)] = null;
i++;
};
i = 1;
while (i < 10) {
temp1 = this[("_s" + i)];
if (!temp1){
break;
};
this[("_s" + i)].gotoAndStop("remove");
DisplayHand.removeFormParent(temp1);
this[("_s" + i)] = null;
i++;
};
if (this._totalNum){
DisplayHand.removeFormParent(this._totalNum);
this._totalNum = null;
};
if (this._shuffleBt){
this._shuffleBt.mouseChildren = false;
this._shuffleBt.removeEventListener(MouseEvent.ROLL_OVER, this._onRollOver);
this._shuffleBt.removeEventListener(MouseEvent.ROLL_OUT, this._onRollOut);
this._shuffleBt.removeEventListener(MouseEvent.CLICK, this.onMouseDown);
this._shuffleBt = null;
};
if (this._dispatcher){
this._dispatcher = null;
};
if (this._showExtra){
DisplayHand.removeFormParent(this._showExtra);
this._showExtra = null;
};
if (this._effectExtra){
this._effectExtra.gotoAndStop(this._effectExtra.totalFrames);
DisplayHand.removeFormParent(this._effectExtra);
this._effectExtra = null;
};
if (this._shuffleBt){
DisplayHand.removeFormParent(this._shuffleBt);
this._shuffleBt = null;
};
if (this._txtLevel){
DisplayHand.removeFormParent(this._txtLevel);
this._txtLevel = null;
};
if (_txtStep){
DisplayHand.removeFormParent(this._txtLevel);
this._txtLevel = null;
};
if (this.__mc){
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
};
}
public function show1w():void{
if (this._effect1w){
this._effect1w.gotoAndPlay(2);
};
}
public function showNoTurn():void{
if (this._noturn){
this._noturn.gotoAndPlay(2);
};
}
private function _onRollOut(evt:MouseEvent):void{
var mc:MovieClip = MovieClip(evt.target);
mc.gotoAndStop(1);
evt.stopPropagation();
}
public function getStartPoint():Point{
var point:Point = new Point();
if (this.__mc){
point.x = this.__mc["startp"].x;
point.y = this.__mc["startp"].y;
};
return (point);
}
private function _showExtraEffect():void{
if (this._effectExtra){
this._effectExtra.gotoAndPlay(1);
};
}
public function suffleEnd():void{
this._shuffleBt.mouseEnabled = false;
this._shuffleBt.alpha = 0.5;
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
public function updateTxtStep($s:Number, $s_old:Number):void{
if ($s_old > 0){
this._showExtra.visible = true;
this._showExtra["txtExtra"].text = String($s_old);
} else {
this._showExtra.visible = false;
};
this._txtStep.text = String($s);
}
private function _runAndCheck($mc:MovieClip, $num:uint, $tar):void{
var now_s:uint = this[(("_s" + $num) + "D")];
var label:String = $mc.currentLabel;
$mc.m1.txt.text = String(now_s);
$mc.m2.txt.text = (((now_s - 1) > 0)) ? String((now_s - 1)) : "0";
if (now_s != $tar){
if (label == "loop"){
if (this[(("_s" + $num) + "D")] == 9){
this[(("_s" + $num) + "D")] = 0;
} else {
var _local6 = this;
var _local7 = (("_s" + $num) + "D");
var _local8 = (_local6[_local7] + 1);
_local6[_local7] = _local8;
};
if (this[(("_s" + $num) + "D")] == $tar){
return;
};
};
if (label != "start"){
$mc.gotoAndPlay("start");
};
} else {
if (label != "end"){
$mc.nextFrame();
};
};
}
private function _goMainMenu(evt:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.MAINMENU));
}
public function showLU():void{
if (this._levelUp){
this._levelUp.gotoAndPlay(2);
};
}
public function suffleStart():void{
this._shuffleBt.mouseEnabled = true;
this._shuffleBt.alpha = 1;
if (int(this._showExtra["txtExtra"].text) > 0){
this._showExtraEffect();
};
}
private function _goMenu(e:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.SHOW_MENU));
}
private function _onRollOver(evt:MouseEvent):void{
var mc:MovieClip = MovieClip(evt.target);
mc.gotoAndStop(2);
switch (mc){
case this._bt_1:
case this._bt_2:
case this._bt_3:
case this._bt_4:
case this._bt_5:
case this._bt_6:
case this._shuffleBt:
SoundsManager.instance.playSound("fruit_select", 1);
break;
};
evt.stopPropagation();
}
private function _onStatis(evt:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.SHOW_STATISTICS));
}
private function _onGameFail():void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.LOSE_GAME));
}
private function showType():void{
var temp:MovieClip;
var i:* = 1;
while (i <= 6) {
temp = this[("_bt_" + i)];
temp.mouseChildren = false;
temp.buttonMode = true;
temp.addEventListener(MouseEvent.ROLL_OVER, this._onRollOver);
temp.addEventListener(MouseEvent.ROLL_OUT, this._onRollOut);
temp.addEventListener(MouseEvent.CLICK, this.onMouseDown);
i++;
};
this._shuffleBt.mouseChildren = false;
this._shuffleBt.buttonMode = true;
this._shuffleBt.addEventListener(MouseEvent.ROLL_OVER, this._onRollOver);
this._shuffleBt.addEventListener(MouseEvent.ROLL_OUT, this._onRollOut);
this._shuffleBt.addEventListener(MouseEvent.CLICK, this.onMouseDown);
}
public function updateTxtLevel($l:uint):void{
this._txtLevel.text = String($l);
}
public function scoreEffectRun():void{
var tar_s:uint;
var mc:MovieClip;
var num:uint;
var num1:uint;
if ((((this._score < 0)) || ((this._score > 999999999)))){
return;
};
var s_score:String = String((this._score + 1000000000));
var len:uint = String(this._score).length;
var i:uint = 9;
while (i > len) {
mc = this[("_s" + i)];
if (mc.visible){
mc.visible = false;
};
i--;
};
i = 0;
while (i < len) {
num = int((i + 1));
mc = this[("_s" + num)];
if (!mc.visible){
mc.visible = true;
};
tar_s = uint(s_score.slice((9 - i), (10 - i)));
this._runAndCheck(mc, num, tar_s);
i++;
};
if (this._totalNum){
num1 = (String(this._score).length - 1);
if (this._totalNum.x != (419 + (num1 * 7))){
this._totalNum.x = (this._totalNum.x + (((419 + (num1 * 7)) - this._totalNum.x) / 5));
};
};
}
private function onMouseDown(evt:MouseEvent):void{
var type:uint;
if (!GameStart.transEnable){
return;
};
if (evt.target == this._bt_1){
type = 1;
} else {
if (evt.target == this._bt_2){
type = 2;
} else {
if (evt.target == this._bt_3){
type = 3;
} else {
if (evt.target == this._bt_4){
type = 4;
} else {
if (evt.target == this._bt_5){
type = 5;
} else {
if (evt.target == this._bt_6){
type = 6;
} else {
if (evt.target == this._shuffleBt){
SoundsManager.instance.playSound("other_click", 1);
type = 7;
};
};
};
};
};
};
};
if (type){
GameStart.transEnable = false;
this._dispatcher.dispatchEvent(new SelectEvent(SelectEvent.SELECT, false, type));
};
evt.stopPropagation();
}
public function updateTxtScore($v:Number):void{
this._score = $v;
}
public function hasEventListener($type:String):Boolean{
return (this._dispatcher.hasEventListener($type));
}
}
}//package zlong.synge.demo
Section 214
//Menu (zlong.synge.demo.Menu)
package zlong.synge.demo {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.synge.synge_code_lab.utils.*;
import zlong.ui.components.*;
public class Menu {
private var _soundBt:SoundButton;
private var _dispatcher:EventDispatcher;
private var _mainMenuBt:Button_3f;
private var __mc:Sprite;
private var _backBt:Button_3f;
private var _helpBt:Button_3f;
private var _musicBt:MusicButton;
public function Menu($pmc:Sprite){
super();
this.__mc = new UI_menu();
$pmc.addChild(this.__mc);
this._dispatcher = new EventDispatcher();
if (this.__mc){
this._initDis();
this._initEvent();
};
}
private function _onHelp(e:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.HOW_TO_PLAY));
}
private function _initEvent():void{
this._backBt.addEventListener(MouseEvent.MOUSE_UP, _onBack);
this._helpBt.addEventListener(MouseEvent.MOUSE_UP, _onHelp);
this._mainMenuBt.addEventListener(MouseEvent.MOUSE_UP, _onMainMenu);
}
private function _onBack(e:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.HIDE_MENU));
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
private function _initDis():void{
this._backBt = new Button_3f(this.__mc["backBt"]);
this._helpBt = new Button_3f(this.__mc["helpBt"]);
this._mainMenuBt = new Button_3f(this.__mc["mainMenuBt"]);
this._soundBt = new SoundButton(this.__mc["soundBt"]);
this._musicBt = new MusicButton(this.__mc["musicBt"]);
}
public function del():void{
this._delEvent();
this._disDis();
}
private function _disDis():void{
if (this.__mc){
this._backBt.del();
this._backBt = null;
this._helpBt.del();
this._helpBt = null;
this._mainMenuBt.del();
this._mainMenuBt = null;
this._soundBt.destroy();
this._soundBt = null;
this._musicBt.destroy();
this._musicBt = null;
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
};
}
private function _delEvent():void{
if (this.__mc){
this._backBt.removeEventListener(MouseEvent.MOUSE_UP, _onBack);
this._helpBt.removeEventListener(MouseEvent.MOUSE_UP, _onHelp);
this._mainMenuBt.removeEventListener(MouseEvent.MOUSE_UP, _onMainMenu);
};
}
private function _onMainMenu(e:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.MAINMENU));
}
}
}//package zlong.synge.demo
Section 215
//SelectEvent (zlong.synge.demo.SelectEvent)
package zlong.synge.demo {
import flash.events.*;
public class SelectEvent extends Event {
private var _num:uint;
public static const SELECT:String = "select";
public function SelectEvent($type:String, $bubbles:Boolean, $num:uint):void{
super($type, $bubbles, false);
this._num = $num;
}
public function getKey():uint{
return (this._num);
}
}
}//package zlong.synge.demo
Section 216
//ShineMask (zlong.synge.demo.ShineMask)
package zlong.synge.demo {
import flash.display.*;
import flash.geom.*;
import zlong.synge.synge_code_lab.utils.*;
import flash.filters.*;
public class ShineMask {
private var _board:Board;
private var _alphaSubStep:Number;
private var _radius:Number;
private var _inMaskBallArr:Array;
private var __mc:Sprite;
private var _filters:Array;
private var _radiuAdd:uint;// = 2
public function ShineMask($pmc:Sprite, $board:Board):void{
var point:Point;
_alphaSubStep = Number((1 / Root.GAME_FRAMERATE));
super();
this.__mc = new Sprite();
$pmc.addChild(this.__mc);
this._inMaskBallArr = new Array();
this._filters = new Array();
if ($board){
this._board = $board;
this._radius = Board.GRIDSIZE;
point = this._board.getDisPos();
if (this.__mc){
this.__mc.x = point.x;
this.__mc.y = point.y;
};
};
this.init();
}
public function showVisble($index:uint):void{
var sprite:Sprite;
if (this._inMaskBallArr){
sprite = this._inMaskBallArr[$index];
if (!sprite.visible){
sprite.visible = true;
};
};
}
public function update():void{
if (this.__mc){
if (this.__mc.alpha > 0){
this.__mc.alpha = (this.__mc.alpha - this._alphaSubStep);
};
};
}
public function del():void{
var i:Sprite;
if (this.__mc){
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
};
if (this._inMaskBallArr){
for each (i in this._inMaskBallArr) {
i.graphics.clear();
DisplayHand.removeFormParent(i);
};
ArrayHand.spliceAll_arr_1(this._inMaskBallArr);
this._inMaskBallArr = null;
};
if (this._filters){
ArrayHand.spliceAll_arr_1(this._filters);
this._filters = null;
};
if (this._board){
this._board = null;
};
}
public function restart():void{
var sprite:Sprite;
var i:uint;
while (i < this._inMaskBallArr.length) {
sprite = this._inMaskBallArr[i];
sprite.visible = false;
i++;
};
if (this.__mc){
this.__mc.alpha = 0;
};
}
private function init():void{
var ft:GlowFilter;
if (this.__mc){
ft = new GlowFilter(0xFFFFFF, 1, 8, 8, 4, 3, false, true);
this._filters.push(ft);
this.__mc.filters = this._filters;
this.creatAllBall();
};
}
private function creatAllBall():void{
var low:uint;
var row:uint;
var tempMc:Sprite;
var i:uint;
var j:uint;
var tempRadiu:Number;
if (this.__mc){
low = this._board.low;
row = this._board.row;
i = 0;
while (i < low) {
j = 0;
while (j < row) {
tempMc = new Sprite();
tempMc.graphics.beginFill(0, 1);
tempRadiu = (this._radius + this._radiuAdd);
tempMc.graphics.drawRoundRect(-(tempRadiu), -(tempRadiu), (tempRadiu * 2), (tempRadiu * 2), 10, 10);
tempMc.x = (Board.GRIDSIZE + ((j * this._radius) * 2));
tempMc.y = (Board.GRIDSIZE + ((i * this._radius) * 2));
tempMc.graphics.endFill();
tempMc.visible = false;
this._inMaskBallArr[((i * row) + j)] = tempMc;
this.__mc.addChild(tempMc);
j++;
};
i++;
};
};
}
public function show():void{
if (this.__mc){
this.__mc.alpha = 1;
};
}
}
}//package zlong.synge.demo
Section 217
//Statis (zlong.synge.demo.Statis)
package zlong.synge.demo {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.data.*;
import flash.text.*;
import zlong.synge.synge_code_lab.utils.*;
public class Statis {
private var _txt_P:TextField;
private var _txt_LC:TextField;
private var _dispatcher:EventDispatcher;
private var _txt_LF:TextField;
private var _resetBt:Button_3f;
private var __mc:Sprite;
private var _backBt:Button_3f;
public function Statis($pmc:Sprite){
super();
this._dispatcher = new EventDispatcher();
this.__mc = new UI_statis();
$pmc.addChild(this.__mc);
this._txt_LC = this.__mc["txt_LC"];
this._txt_LF = this.__mc["txt_LF"];
this._txt_P = this.__mc["txt_P"];
this._resetBt = new Button_3f(this.__mc["resetBt"]);
this._backBt = new Button_3f(this.__mc["backBt"]);
this._resetBt.addEventListener(MouseEvent.MOUSE_UP, this._onReset);
this._backBt.addEventListener(MouseEvent.MOUSE_UP, this._onBack);
this._jishuan();
}
private function updateTxt($lc:uint, $lf:uint, $p:uint):void{
this._txt_LC.text = String($lc);
this._txt_LF.text = String($lf);
this._txt_P.text = (String($p) + " %");
}
public function addEventListener($type:String, $func:Function):void{
this._dispatcher.addEventListener($type, $func);
}
private function _jishuan():void{
var lc:uint = Data.userProfile.winCount;
var lf:uint = Data.userProfile.failCount;
var p:uint = uint(((lc / (lc + lf)) * 100));
this.updateTxt(lc, lf, p);
}
private function _onReset(evt:MouseEvent):void{
Data.userProfile.winCount = 0;
Data.userProfile.failCount = 0;
Data.saveUserProfile();
this.updateTxt(0, 0, 0);
evt.stopPropagation();
}
public function del():void{
if (this._dispatcher){
this._dispatcher = null;
};
DisplayHand.removeFormParent(this._txt_LC);
this._txt_LC = null;
DisplayHand.removeFormParent(this._txt_LF);
this._txt_LF = null;
DisplayHand.removeFormParent(this._txt_P);
this._txt_P = null;
this._resetBt.removeEventListener(MouseEvent.MOUSE_UP, this._onReset);
this._backBt.removeEventListener(MouseEvent.MOUSE_UP, this._onBack);
this._resetBt.del();
this._resetBt = null;
this._backBt.del();
this._backBt = null;
DisplayHand.removeFormParent(this.__mc);
this.__mc = null;
}
private function _onBack(evt:MouseEvent):void{
this._dispatcher.dispatchEvent(new UIEvent(UIEvent.HIDE_STATISTICS));
evt.stopPropagation();
}
public function removeEventListener($type:String, $func:Function):void{
this._dispatcher.removeEventListener($type, $func);
}
}
}//package zlong.synge.demo
Section 218
//TransFormEvent (zlong.synge.demo.TransFormEvent)
package zlong.synge.demo {
import flash.events.*;
public class TransFormEvent extends Event {
private var _ball:Ball;
public static const TRANSFORM_END:String = "transform_end";
public static const TRANSFORM_END_ALL:String = "transform_end_all";
public function TransFormEvent($type:String, $bubbles:Boolean, $ball:Ball=null):void{
super($type, $bubbles, false);
this._ball = $ball;
}
public function getBall():Ball{
return (_ball);
}
}
}//package zlong.synge.demo
Section 219
//ArrayHand (zlong.synge.synge_code_lab.utils.ArrayHand)
package zlong.synge.synge_code_lab.utils {
public class ArrayHand {
public function ArrayHand(){
super();
}
public static function spliceAll_arr_1($arr:Array):void{
if (!$arr){
return;
};
while ($arr.length > 0) {
if (($arr[0] is Array)){
throw (new Error("$arr[0] is Array"));
};
$arr.splice(0, 1);
};
}
public static function spliceFromArr($p, $arr:Array):Boolean{
var num:Number = $arr.indexOf($p);
var boo:Boolean = ((num == -1)) ? false : true;
if (boo){
$arr.splice(num, 1);
};
return (boo);
}
public static function checkInArr($p, $arr:Array):Boolean{
var num:Number = $arr.indexOf($p);
return (((num == -1)) ? false : true);
}
public static function getArrLength_Null($arr:Array):uint{
var len:uint;
var i:uint;
while (i < $arr.length) {
if ($arr[i] != null){
len++;
};
i++;
};
return (len);
}
}
}//package zlong.synge.synge_code_lab.utils
Section 220
//DisplayHand (zlong.synge.synge_code_lab.utils.DisplayHand)
package zlong.synge.synge_code_lab.utils {
import flash.display.*;
import flash.geom.*;
public class DisplayHand {
public function DisplayHand(){
super();
}
public static function removeFormParent($dis:DisplayObject):Boolean{
if (!$dis){
return (null);
};
if ($dis.parent){
$dis.parent.removeChild($dis);
return (true);
};
return (false);
}
public static function getBitmapData($dis:DisplayObject, $startX:Number, $startY:Number, $bdW:Number, $bdH:Number, $smooting:Boolean):BitmapData{
if (!$dis){
return (null);
};
var bd:BitmapData = new BitmapData(($bdW * 2), ($bdH * 2), true, 0xFFFFFF);
bd.draw($dis, new Matrix(2, 0, 0, 2, $startX, $startY));
return (bd);
}
public static function removeAllChild($dis:DisplayObjectContainer):void{
while ($dis.numChildren > 0) {
$dis.removeChildAt(0);
};
}
}
}//package zlong.synge.synge_code_lab.utils
Section 221
//ListenKey (zlong.synge.synge_code_lab.utils.ListenKey)
package zlong.synge.synge_code_lab.utils {
import flash.display.*;
import flash.events.*;
public class ListenKey {
private static var keyArr:Array = new Array();
public function ListenKey():void{
super();
}
public static function upAllKey():void{
var i:*;
for (i in keyArr) {
keyArr[i][0] = false;
keyArr[i][1] = false;
};
}
private static function on_KeyDown(evt:KeyboardEvent):void{
if (!keyArr[evt.keyCode]){
keyArr[evt.keyCode] = [false, false];
};
keyArr[evt.keyCode][0] = true;
}
private static function on_Deactivate(evt:Event):void{
upAllKey();
}
private static function on_FocusOut(evt:FocusEvent):void{
upAllKey();
}
public static function listen(container:DisplayObjectContainer):void{
container.stage.addEventListener(KeyboardEvent.KEY_DOWN, on_KeyDown);
container.stage.addEventListener(KeyboardEvent.KEY_UP, on_KeyUp);
container.stage.addEventListener(Event.MOUSE_LEAVE, on_Deactivate);
container.stage.addEventListener(Event.DEACTIVATE, on_Deactivate);
}
public static function isPressed($k:uint):Boolean{
if (!keyArr[$k]){
keyArr[$k] = [false, false];
};
if (!keyArr[$k][1]){
if (keyArr[$k][0]){
keyArr[$k][1] = true;
return (true);
};
};
return (false);
}
private static function on_KeyUp(evt:KeyboardEvent):void{
if (!keyArr[evt.keyCode]){
keyArr[evt.keyCode] = [false, false];
};
keyArr[evt.keyCode][0] = false;
keyArr[evt.keyCode][1] = false;
}
public static function isDown(key:uint):Boolean{
if (!keyArr[key]){
keyArr[key] = [false, false];
};
return (Boolean(keyArr[key][0]));
}
}
}//package zlong.synge.synge_code_lab.utils
Section 222
//AbstractLoadingClass (zlong.Template.AbstractLoadingClass)
package zlong.Template {
import flash.display.*;
import flash.utils.*;
public class AbstractLoadingClass {
framework_internal static const VERSION:String = "v1.16.201012281612";
public function AbstractLoadingClass(pmc:Sprite){
super();
if (getQualifiedClassName(this) == "zlong::Template::AbstractLoadingClass"){
throw (new ArgumentError("can't be constructed"));
};
}
public function destroy():void{
throw (new ArgumentError("function destroy must be override"));
}
}
}//package zlong.Template
Section 223
//AbstractMainClass (zlong.Template.AbstractMainClass)
package zlong.Template {
import flash.display.*;
import zlong.spilSystemTool.*;
import zlong.utils.*;
import flash.text.*;
import flash.utils.*;
import net.hires.debug.*;
public class AbstractMainClass {
private var __mainMc:Sprite;
protected var __GameMc:Sprite;
private var _childClass:Class;
framework_internal static const VERSION:String = "v1.16.201012281612";
public function AbstractMainClass(mainMc:Sprite){
super();
if (getQualifiedClassName(this) == "zlong::Template::AbstractMainClass"){
throw (new ArgumentError("can't be constructed"));
};
this._childClass = (getDefinitionByName(getQualifiedClassName(this)) as Class);
this.__mainMc = mainMc;
this.__GameMc = new Sprite();
this.__GameMc.name = "GameMc";
this.__mainMc.addChild(this.__GameMc);
this.initGameSetting();
}
protected function initGameSetting():void{
SpilSetting.instance.init((this.__mainMc.root as Sprite), this.gameNameUnderline, AbstractRootClass.instance._childClass["__debug__"]);
SharedObjectUtil.init(this.gameNameUnderline);
GoogleEvent.instance.init(this.gameNameUnderline, this.__mainMc.root, AbstractRootClass.instance._childClass["__debug__"]);
}
protected function showVersion(v:String):void{
var tempMc:Sprite;
tempMc = new Sprite();
tempMc.name = "VersionMc";
tempMc.mouseEnabled = false;
this.__mainMc.addChild(tempMc);
var _tf:TextField = new TextField();
_tf.selectable = false;
_tf.mouseEnabled = false;
_tf.defaultTextFormat = new TextFormat("_san", 12, 0);
_tf.width = 200;
_tf.height = 50;
_tf.x = 0;
_tf.y = 0;
_tf.text = v;
tempMc.addChild(_tf);
}
protected function showFPS():void{
this.__mainMc.addChild(new Stats());
}
public function get gameNameUnderline():String{
return (AbstractRootClass.cutGameName((AbstractRootClass.instance._childClass["GAME_NAME"] as String)));
}
}
}//package zlong.Template
Section 224
//AbstractRootClass (zlong.Template.AbstractRootClass)
package zlong.Template {
import flash.events.*;
import flash.display.*;
import zlong.spilSystemTool.*;
import zlong.site.*;
import zlong.utils.*;
import zlong.*;
import flash.utils.*;
import flash.geom.*;
public class AbstractRootClass extends MovieClip {
var _childClass:Class;
private var __mainMc:Sprite;
private var _game:Object;
private var _realLoaderUI:Object;
private var _textLoaderUI:TextLoader;
private var _loadingComplete:Boolean;
framework_internal static const VERSION:String = "v1.16.201012281612";
static var instance:AbstractRootClass;
public function AbstractRootClass(){
super();
if (stage){
this.init();
} else {
addEventListener(Event.ADDED_TO_STAGE, this.init);
};
}
private function init(event:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE, this.init);
instance = this;
this._loadingComplete = false;
this.stop();
if (getQualifiedClassName(this) == "zlong::Template::AbstractRootClass"){
throw (new ArgumentError("can't be constructed"));
};
this._childClass = (getDefinitionByName(getQualifiedClassName(this)) as Class);
if (!(this._childClass["GAME_FRAMERATE"] is int)){
throw (new ArgumentError("Class Root need static const Int 'GAME_FRAMERATE'"));
};
if (!(this._childClass["GAME_NAME"] is String)){
throw (new ArgumentError("Class Root need static const String 'GAME_NAME'"));
};
if (!(this._childClass["STAGE_WIGHT"] is int)){
throw (new ArgumentError("Class Root need static const Int 'STAGE_WIGHT'"));
};
if (!(this._childClass["STAGE_HEIGHT"] is int)){
throw (new ArgumentError("Class Root need static const Int 'STAGE_HEIGHT'"));
};
if (!(this._childClass["PORTAL_TYPE"] is String)){
throw (new ArgumentError("Class Root need static const String 'PORTAL_TYPE'"));
};
if (!(this._childClass["LOADING_CLASS_NAME"] is String)){
throw (new ArgumentError("Class Root need static const String 'LOADING_CLASS_NAME'"));
};
if (!(this._childClass["GAME_CLASS_NAME"] is String)){
throw (new ArgumentError("Class Root need static const String 'GAME_CLASS_NAME'"));
};
if (!(this._childClass["VERSION_NUM"] is String)){
throw (new ArgumentError("Class Root need static const String 'VERSION_NUM'"));
};
if (!(this._childClass["__debug__"] is Boolean)){
throw (new ArgumentError("Class Root need static const Boolean '__debug__'"));
};
stage.frameRate = this._childClass["GAME_FRAMERATE"];
this.__mainMc = new Sprite();
this.__mainMc.name = "__mainMc";
this.addChild(this.__mainMc);
if (!this._childClass["__debug__"]){
this.__mainMc.scrollRect = new Rectangle(0, 0, this._childClass["STAGE_WIGHT"], this._childClass["STAGE_HEIGHT"]);
};
this.addFrameScript(0, this.s0);
this.addFrameScript(1, this.s1);
this.addFrameScript(2, this.s2);
this.checkFPVersion();
HideConsole = ["|ZLC|"];
}
private function checkFPVersion():void{
FPVersionCheck.checkVersion();
}
private function s0():void{
this.script0();
this.stop();
this.initSettingBeforeLoading();
this.initTextloader();
this.initLoading();
}
private function s1():void{
var realLoadingClass:Class;
this.script1();
this.stop();
this._childClass["LOADING_CLASS_NAME"];
realLoadingClass = (getDefinitionByName(this._childClass["LOADING_CLASS_NAME"]) as Class);
//unresolved jump
var _slot1 = e;
throw (new ArgumentError(("can`t found the Loading Class " + _childClass["LOADING_CLASS_NAME"])));
return;
this._realLoaderUI = new realLoadingClass(this.__mainMc);
if (!(this._realLoaderUI is (getDefinitionByName("zlong.Template.AbstractLoadingClass") as Class))){
throw (new ArgumentError("the Loading Class mush extends Class AbstractLoadingClass"));
};
}
private function s2():void{
var mainClass:Class;
this.script2();
this.stop();
mainClass = (getDefinitionByName(this._childClass["GAME_CLASS_NAME"]) as Class);
//unresolved jump
var _slot1 = e;
throw (new ArgumentError(("can`t found the Main Class " + _childClass["GAME_CLASS_NAME"])));
return;
this._game = new mainClass(this.__mainMc);
if (!(this._game is (getDefinitionByName("zlong.Template.AbstractMainClass") as Class))){
throw (new ArgumentError("the Main Class mush extends Class AbstractMainClass"));
};
}
private function initLoading():void{
this.addEventListener(Event.ENTER_FRAME, this.updateLoading);
this.loaderInfo.addEventListener(Event.COMPLETE, this.LoadingComplete);
}
private function LoadingComplete(event:Event):void{
this._loadingComplete = true;
this.loaderInfo.removeEventListener(Event.COMPLETE, this.LoadingComplete);
}
private function updateLoading(event:Event):void{
if (this.framesLoaded == 1){
this._textLoaderUI.update();
};
if ((((this.currentFrame == 1)) && ((this.framesLoaded >= 2)))){
this.realLoaderLoadingFinish();
};
if ((((((((this.currentFrame == 2)) && (((this._loadingComplete) || ((this.totalFrames == this.framesLoaded)))))) && (LocalSiteDataLoader.localSiteDataLoaderFinish))) && (Award_HighScore.initializedFinish))){
this.loadingFinish();
this.delLoading();
};
Trace("||ZFW||", "currentFrame:", currentFrame, "framesLoaded", framesLoaded, "_loadingComplete", this._loadingComplete);
}
private function delLoading():void{
this.removeEventListener(Event.ENTER_FRAME, this.updateLoading);
}
private function initTextloader():void{
this._textLoaderUI = new TextLoader(this.__mainMc, this._childClass["STAGE_WIGHT"], this._childClass["STAGE_HEIGHT"]);
}
protected function delTextLoader():void{
if (this._textLoaderUI){
this._textLoaderUI.del();
this._textLoaderUI = null;
};
}
protected function delRealLoadingUI():void{
if (this._realLoaderUI){
var _local1 = this._realLoaderUI;
_local1["destroy"]();
};
}
protected function initSettingBeforeLoading():void{
new GameSetting(this, false, this._childClass["PORTAL_TYPE"], cutGameName((this._childClass["GAME_NAME"] as String)), (cutGameName((this._childClass["GAME_NAME"] as String), "-", true) + ".html"), this._childClass["STAGE_WIGHT"], this._childClass["STAGE_HEIGHT"]);
Award_HighScore.instance.init(cutGameName((this._childClass["GAME_NAME"] as String)), this, this._childClass["__debug__"], this._childClass["__debug__"]);
}
protected function realLoaderLoadingFinish():void{
this.delTextLoader();
this.gotoAndStop(2);
}
protected function loadingFinish():void{
this.delRealLoadingUI();
this.gotoAndStop(3);
}
protected function script0():void{
}
protected function script1():void{
}
protected function script2():void{
}
public static function cutGameName(gamename:String, delim:String="_", initialToUpperCase:Boolean=false):String{
var re:RegExp = /[-| |_]/;
var gameNamePartArr:Array = gamename.split(re);
var paraName:String = "";
var paraNamePart:String = "";
var i:int;
while (i < gameNamePartArr.length) {
paraNamePart = ((gameNamePartArr[i] as String).toLowerCase() + delim);
if (initialToUpperCase){
paraName = (paraName + (paraNamePart.charAt(0).toUpperCase() + paraNamePart.substr(1)));
} else {
paraName = (paraName + paraNamePart);
};
i++;
};
paraName = paraName.substr(0, (paraName.length - 1));
return (paraName);
}
}
}//package zlong.Template
Section 225
//TextLoader (zlong.Template.TextLoader)
package zlong.Template {
import flash.display.*;
import flash.text.*;
import zlong.*;
public class TextLoader {
private var _tf:TextField;
private var _loaderInfo:LoaderInfo;
private var _width:Number;
private var _height:Number;
private var _pmc:Sprite;
framework_internal static const VERSION:String = "v1.16.201012281612";
public function TextLoader(pmc:Sprite, width:Number, height:Number){
super();
this._pmc = pmc;
this._width = width;
this._height = height;
this._loaderInfo = pmc.root.loaderInfo;
this._tf = new TextField();
this._tf.autoSize = TextFieldAutoSize.LEFT;
this._tf.defaultTextFormat = new TextFormat("_sans", 16, 0, true);
this._tf.height = 30;
this._pmc.addChild(this._tf);
}
function update():void{
this._tf.text = (("Loading... " + Math.floor(((100 * this._loaderInfo.bytesLoaded) / this._loaderInfo.bytesTotal))) + "%");
this._tf.x = ((this._width - this._tf.width) / 2);
this._tf.y = ((this._height - this._tf.height) / 2);
}
function del():void{
this._pmc.removeChild(this._tf);
this._tf = null;
this._loaderInfo = null;
this._pmc = null;
}
}
}//package zlong.Template
Section 226
//MusicButton (zlong.ui.components.MusicButton)
package zlong.ui.components {
import flash.display.*;
import flash.events.*;
import zlong.data.*;
import zlong.utils.*;
public class MusicButton {
private var button:MovieClip;
public function MusicButton(button:MovieClip){
super();
this.button = button;
this.button.buttonMode = true;
this.button.mouseChildren = false;
initDis();
initEvent();
}
public function destroy():void{
button.removeEventListener(MouseEvent.CLICK, soundButtonClickHandler);
}
private function initEvent():void{
button.addEventListener(MouseEvent.CLICK, soundButtonClickHandler);
}
private function soundButtonClickHandler(event:MouseEvent):void{
SoundsManager.instance.MusicEnable = !(SoundsManager.instance.MusicEnable);
initDis();
Data.userProfile.musicEnable = SoundsManager.instance.MusicEnable;
Data.saveUserProfile();
SoundsManager.instance.playSound("other_click", 1);
}
private function initDis():void{
if (SoundsManager.instance.MusicEnable){
button.gotoAndStop(1);
} else {
button.gotoAndStop(2);
};
}
}
}//package zlong.ui.components
Section 227
//SoundButton (zlong.ui.components.SoundButton)
package zlong.ui.components {
import flash.display.*;
import flash.events.*;
import zlong.data.*;
import zlong.utils.*;
public class SoundButton {
private var button:MovieClip;
public function SoundButton(button:MovieClip){
super();
this.button = button;
this.button.buttonMode = true;
this.button.mouseChildren = false;
initDis();
initEvent();
}
public function destroy():void{
button.removeEventListener(MouseEvent.CLICK, soundButtonClickHandler);
}
private function initEvent():void{
button.addEventListener(MouseEvent.CLICK, soundButtonClickHandler);
}
private function soundButtonClickHandler(event:MouseEvent):void{
SoundsManager.instance.Enabled = !(SoundsManager.instance.Enabled);
initDis();
Data.userProfile.soundEnable = SoundsManager.instance.Enabled;
Data.saveUserProfile();
SoundsManager.instance.playSound("other_click", 1);
}
private function initDis():void{
if (SoundsManager.instance.Enabled){
button.gotoAndStop(1);
} else {
button.gotoAndStop(2);
};
}
}
}//package zlong.ui.components
Section 228
//AbstractScreen (zlong.ui.AbstractScreen)
package zlong.ui {
import flash.display.*;
import flash.utils.*;
public class AbstractScreen {
protected var _root:Sprite;
public function AbstractScreen(r:Sprite){
super();
if (getQualifiedClassName(this) == "main::AbstractScreen"){
throw (new ArgumentError("can't be constructed"));
};
_root = r;
}
public function destroy():void{
throw (new Error("Abstract Method!"));
}
}
}//package zlong.ui
Section 229
//GameFailed (zlong.ui.GameFailed)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.synge.demo.*;
import zlong.utils.*;
import zlong.breathxue.utils.*;
import zlong.site.*;
public class GameFailed extends AbstractScreen {
private var _mode:uint;
private var _mainMenuBt:Button_3f;
private var _mc:MovieClip;
private var _tryAgainBt:Button_3f;
private var _moreGamesBt:Button_3f;
public function GameFailed(r:Sprite, $m:uint){
super(r);
this._mode = $m;
initDis();
initEvent();
}
private function delDis():void{
if (this._mainMenuBt){
this._mainMenuBt.del();
this._mainMenuBt = null;
};
if (this._moreGamesBt){
this._moreGamesBt.del();
this._moreGamesBt = null;
};
_root.removeChild(_mc);
_mc = null;
}
private function initDis():void{
var classN:String;
if (this._mode == 1){
classN = "UI_gameover";
SoundsManager.instance.stopAllSound();
SoundsManager.instance.stopMusic();
SoundsManager.instance.playSound("fruit_lose", 1);
} else {
if (this._mode == 2){
classN = "UI_win";
SoundsManager.instance.fadeInMusic("fruit_menu");
};
};
_mc = Attach.getMovieClip(classN);
_root.addChild(_mc);
this._tryAgainBt = new Button_3f(this._mc["tryAgainBt"]);
this._mainMenuBt = new Button_3f(this._mc["mainMenuBt"]);
this._moreGamesBt = new Button_3f(this._mc["moreGamesBt"]);
var site:MovieClip = _mc["moreGamesBt"]["site"];
site.gotoAndStop((SiteInfo.instance.allowed) ? 1 : 2);
if (this._mc["score"]){
this._mc["score"].text = String(GameStart.score);
};
}
private function delEvent():void{
this._mainMenuBt.removeEventListener(MouseEvent.CLICK, clickOkBt);
this._tryAgainBt.removeEventListener(MouseEvent.CLICK, this._onTryAgain);
}
private function initEvent():void{
this._mainMenuBt.addEventListener(MouseEvent.MOUSE_UP, clickOkBt);
this._tryAgainBt.addEventListener(MouseEvent.MOUSE_UP, this._onTryAgain);
}
override public function destroy():void{
delEvent();
delDis();
}
private function _onTryAgain(evt:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.PLAY_GAME));
}
private function clickOkBt(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.MAINMENU));
}
}
}//package zlong.ui
Section 230
//HowToPlay (zlong.ui.HowToPlay)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.synge.demo.*;
import zlong.synge.synge_code_lab.utils.*;
import zlong.breathxue.utils.*;
public class HowToPlay extends AbstractScreen {
private var _button_3f:Button_3f;
private var _okMc:MovieClip;
private var _mc:MovieClip;
public function HowToPlay(r:Sprite){
super(r);
initDis();
initEvents();
}
private function initEvents():void{
_okMc.addEventListener(MouseEvent.CLICK, gotoDifficultSelect);
}
override public function destroy():void{
removeEvents();
removeChild();
}
private function gotoDifficultSelect(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.START_GAME));
}
private function removeChild():void{
this._button_3f.del();
this._button_3f = null;
DisplayHand.removeFormParent(this._okMc);
this._okMc = null;
_root.removeChild(_mc);
_mc = null;
}
private function removeEvents():void{
_okMc.removeEventListener(MouseEvent.CLICK, gotoDifficultSelect);
}
private function initDis():void{
_mc = Attach.getMovieClip("UI_howtoplay");
_root.addChild(_mc);
_okMc = _mc["ok_button"];
_okMc["txt"].gotoAndStop((Main.gameinHelp) ? 2 : 1);
this._button_3f = new Button_3f(_okMc);
}
}
}//package zlong.ui
Section 231
//LevelCompleted (zlong.ui.LevelCompleted)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.breathxue.utils.*;
public class LevelCompleted extends AbstractScreen {
private var _nextLevel:MovieClip;
private var _mc:MovieClip;
public function LevelCompleted(r:Sprite){
super(r);
initDis();
initEvent();
}
private function clickNextLevel(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.GO_LEVEL_SELECT));
}
override public function destroy():void{
delEvent();
delDis();
}
private function initEvent():void{
_nextLevel.addEventListener(MouseEvent.CLICK, clickNextLevel);
}
private function delDis():void{
_root.removeChild(_mc);
_mc = null;
}
private function initDis():void{
_mc = Attach.getMovieClip("LevelWin");
_root.addChild(_mc);
_nextLevel = _mc["nextLevel_button"];
}
private function delEvent():void{
_nextLevel.removeEventListener(MouseEvent.CLICK, clickNextLevel);
}
}
}//package zlong.ui
Section 232
//LevelFailed (zlong.ui.LevelFailed)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.breathxue.utils.*;
public class LevelFailed extends AbstractScreen {
private var _back:MovieClip;
private var _mc:MovieClip;
private var _ok:MovieClip;
public function LevelFailed(r:Sprite){
super(r);
initDis();
initEvent();
}
private function clickRetry(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.LOSE_GAME));
}
private function delDis():void{
_root.removeChild(_mc);
_mc = null;
}
private function initDis():void{
_mc = Attach.getMovieClip("LevelLost");
_root.addChild(_mc);
_back = _mc["back_button"];
_ok = _mc["retry_button"];
}
private function initEvent():void{
_ok.addEventListener(MouseEvent.CLICK, clickRetry);
_back.addEventListener(MouseEvent.CLICK, clickBack);
}
private function clickBack(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.MAINMENU));
}
override public function destroy():void{
delEvent();
delDis();
}
private function delEvent():void{
_ok.removeEventListener(MouseEvent.CLICK, clickRetry);
_back.removeEventListener(MouseEvent.CLICK, clickBack);
}
}
}//package zlong.ui
Section 233
//LevelMap (zlong.ui.LevelMap)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.data.*;
import zlong.breathxue.utils.*;
public class LevelMap extends AbstractScreen {
private var _mc:MovieClip;
private var _startGame:MovieClip;
public function LevelMap(r:Sprite){
super(r);
initDis();
initEvents();
}
override public function destroy():void{
removeEvents();
removeChild();
}
private function initEvents():void{
var i:Number = 1;
while (i <= Data.userProfile.levelUnlocked) {
_mc[("levelbutton_" + i)].addEventListener(MouseEvent.CLICK, clickLevel);
i++;
};
_startGame.addEventListener(MouseEvent.CLICK, clickStart);
}
private function displayCurrentLevel():void{
_mc["levelNum_textField"].text = Data.userProfile.levelUnlocked;
}
private function removeChild():void{
_root.removeChild(_mc);
_mc = null;
}
private function clickStart(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.PLAY_GAME));
Data.currPlayingLevel = Data.userProfile.levelUnlocked;
}
private function clickLevel(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.PLAY_GAME));
trace(event.target.name.split("_")[1]);
Data.currPlayingLevel = event.target.name.split("_")[1];
}
private function removeEvents():void{
var i:Number = 1;
while (i <= Data.userProfile.levelUnlocked) {
_mc[("levelbutton_" + i)].removeEventListener(MouseEvent.CLICK, clickLevel);
i++;
};
_startGame.removeEventListener(MouseEvent.CLICK, clickStart);
}
private function initDis():void{
_mc = Attach.getMovieClip("LevelSelect");
_root.addChild(_mc);
_startGame = (_mc.getChildByName("ok_button") as MovieClip);
displayCurrentLevel();
}
}
}//package zlong.ui
Section 234
//MainMenu (zlong.ui.MainMenu)
package zlong.ui {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.synge.demo.*;
import zlong.utils.*;
import zlong.synge.synge_code_lab.utils.*;
import zlong.ui.components.*;
import zlong.breathxue.utils.*;
import zlong.site.*;
public class MainMenu extends AbstractScreen {
private var _logoBt:MovieClip;
private var _music:MusicButton;
private var _site:MovieClip;
private var _sound:SoundButton;
private var _helpBt:Button_3f;
private var _mc:MovieClip;
private var _moreGameBt:Button_3f;
private var _startBt:Button_3f;
public function MainMenu(r:Sprite){
super(r);
initDis();
initEvents();
SoundsManager.instance.fadeInMusic("fruit_menu");
}
private function clickHowToPlayBt(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.HOW_TO_PLAY));
}
private function removeChild():void{
if (this._site){
DisplayHand.removeFormParent(this._site);
this._site = null;
};
if (this._startBt){
this._startBt.del();
this._startBt = null;
};
if (this._helpBt){
this._helpBt.del();
this._helpBt = null;
};
if (this._moreGameBt){
this._moreGameBt.del();
this._moreGameBt = null;
};
if (this._logoBt){
this._logoBt.removeEventListener(MouseEvent.MOUSE_UP, _on_MouseUp);
DisplayHand.removeFormParent(this._logoBt);
this._logoBt = null;
};
_music.destroy();
_music = null;
_sound.destroy();
_sound = null;
_root.removeChild(_mc);
_mc = null;
}
override public function destroy():void{
removeEvents();
removeChild();
}
private function initEvents():void{
_startBt.addEventListener(MouseEvent.MOUSE_UP, clickStartBt);
this._helpBt.addEventListener(MouseEvent.MOUSE_UP, this.clickHowToPlayBt);
}
private function _on_MouseUp(e:MouseEvent):void{
SoundsManager.instance.playSound("other_click", 1);
}
private function clickStartBt(event:MouseEvent):void{
_root.dispatchEvent(new UIEvent(UIEvent.START_GAME));
}
private function removeEvents():void{
_startBt.removeEventListener(MouseEvent.CLICK, clickStartBt);
this._helpBt.removeEventListener(MouseEvent.CLICK, clickHowToPlayBt);
}
private function initDis():void{
_mc = Attach.getMovieClip("UI_mainmenu");
_root.addChild(_mc);
_startBt = new Button_3f(_mc["gameStart_button"]);
_music = new MusicButton(_mc["music_button"]);
_sound = new SoundButton(_mc["sound_button"]);
this._site = _mc["moreGame_button"]["site"];
this._site.gotoAndStop((SiteInfo.instance.allowed) ? 1 : 2);
this._helpBt = new Button_3f(_mc["help_button"]);
this._moreGameBt = new Button_3f(_mc["moreGame_button"]);
this._logoBt = _mc["logo_button"];
this._logoBt.addEventListener(MouseEvent.MOUSE_UP, _on_MouseUp);
_mc["versionTxt"]["text"] = Root.VERSION_NUM;
}
}
}//package zlong.ui
Section 235
//UILoading (zlong.ui.UILoading)
package zlong.ui {
import flash.display.*;
import flash.events.*;
import zlong.Template.*;
import flash.text.*;
import zlong.breathxue.utils.*;
public class UILoading extends AbstractLoadingClass {
private var _mc_perBar:MovieClip;
private var _mc_perText:TextField;
private var _mc:Sprite;
private static const MC_CLASS_NAME:String = "UI_loading";
public function UILoading(pmc:Sprite):void{
super(pmc);
initDis(pmc);
initEvent();
}
private function delDis():void{
_mc.parent.removeChild(_mc);
}
private function initEvent():void{
_mc.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function delEvent():void{
_mc.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
override public function destroy():void{
delEvent();
delDis();
}
private function enterFrameHandler(event:Event):void{
var percentSWF:Number = (_mc.root.loaderInfo.bytesLoaded / _mc.root.loaderInfo.bytesTotal);
_mc_perBar.gotoAndStop(int((percentSWF * 100)));
_mc_perText.text = (int((percentSWF * 100)) + "");
}
private function initDis(pmc:Sprite):void{
_mc = Attach.getSprite(MC_CLASS_NAME);
pmc.addChild(_mc);
trace(111);
_mc_perBar = (_mc.getChildByName("perBar") as MovieClip);
_mc_perText = (_mc.getChildByName("perText") as TextField);
}
}
}//package zlong.ui
Section 236
//FPVersionCheck (zlong.utils.FPVersionCheck)
package zlong.utils {
import zlong.*;
import flash.system.*;
public class FPVersionCheck {
public static const ALLOW_VERSION_MIN:String = "9,0,0,0";
public static function getVersion():String{
return (Capabilities.version);
}
framework_internal static function checkVersion():void{
var i:int;
var __information:String = Capabilities.version;
var __curVersion:Array = (__information.split(" ")[1] as String).split(",");
var __needVersion:Array = ALLOW_VERSION_MIN.split(",");
for (;i < __curVersion.length;i++) {
if (int(__curVersion[i]) > int(__needVersion[i])){
return;
};
if (int(__curVersion[i]) == int(__needVersion[i])){
continue;
} else {
if (int(__curVersion[i]) < int(__needVersion[i])){
Trace(("当前flash player版本为" + __information));
Trace(("游戏允许的最低flash player版本为flash player" + ALLOW_VERSION_MIN));
throw (new VerifyError(("The current Flash Player version is too low,please use the version above Flash Player" + ALLOW_VERSION_MIN)));
};
};
};
}
}
}//package zlong.utils
Section 237
//SharedObjectUtil (zlong.utils.SharedObjectUtil)
package zlong.utils {
import flash.events.*;
import flash.net.*;
public class SharedObjectUtil {
private static const GLOBAL:String = "global";
private static const PREFIX:String = "SpilGames";
private static var operatedSharedObject:SharedObject;
private static var gameName:String;
public function SharedObjectUtil(){
super();
}
public static function save(sharedObject:SharedObject):void{
var flushResult:String;
var sharedObject = sharedObject;
operatedSharedObject = sharedObject;
flushResult = operatedSharedObject.flush();
if (flushResult == SharedObjectFlushStatus.PENDING){
operatedSharedObject.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
} else {
operatedSharedObject = null;
};
//unresolved jump
var _slot1 = err;
}
public static function init(shareObjectName:String):void{
gameName = shareObjectName;
}
public static function getLocal(name:String):SharedObject{
var so:SharedObject;
var name = name;
so = SharedObject.getLocal(((((PREFIX + "_") + gameName) + "_") + name), "/");
//unresolved jump
var _slot1 = err;
trace("create error");
return (so);
}
private static function statusHandler(event:NetStatusEvent):void{
if (event.info.code == "SharedObject.Flush.Failed"){
} else {
if (event.info.code == "SharedObject.Flush.Success"){
trace("save successed");
};
};
operatedSharedObject.removeEventListener(NetStatusEvent.NET_STATUS, statusHandler);
operatedSharedObject = null;
}
public static function getGlobal(name:String):SharedObject{
var so:SharedObject;
var name = name;
so = SharedObject.getLocal(((((PREFIX + "_") + GLOBAL) + "_") + name), "/");
//unresolved jump
var _slot1 = err;
trace("create error");
return (so);
}
}
}//package zlong.utils
Section 238
//SoundsManager (zlong.utils.SoundsManager)
package zlong.utils {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class SoundsManager {
private const VALUE_FADE:Number = 0.02;
private var fadeInTimer:Timer;
private var curMusic_sc:SoundChannel;
private var curMusic_so:Sound;
private var valueSound:Number;
private var valueGroupSound:Number;
private var motionTimer:Timer;
private var fadeTimes:int;
private var fadeInLabel:String;
private var valueMusic:Number;
private var fadeOutTimer:Timer;
private var curMusic_st:String;
private var enabled:Boolean;
private var pauseMusic_st:String;
private var soundArr:Array;
private var musicEnabled:Boolean;
private var currGroupSoundId:int;
private var groupSoundArr:Array;
private var curMusic_rp:int;
private var pausePos:Number;
private static var currentInstance:SoundsManager;
public function SoundsManager(){
super();
init();
}
private function initGroupSound():void{
var obj:Object = groupSoundArr[currGroupSoundId];
obj["soundChannel"] = obj["sound"].play(0, 0, new SoundTransform(valueGroupSound));
initGroupSoundChannelEvent(obj["soundChannel"]);
}
public function get ValueGroupSound():Number{
return (valueGroupSound);
}
public function set ValueSound(n:Number):void{
var i:int;
var transform:SoundTransform;
valueSound = n;
if (soundArr != null){
i = 0;
while (i < soundArr.length) {
transform = soundArr[i]["soundChannel"].soundTransform;
transform.volume = n;
soundArr[i]["soundChannel"].soundTransform = transform;
i++;
};
};
}
private function stopFadeIn():void{
var transform:SoundTransform;
if (((curMusic_sc) && (curMusic_sc.soundTransform))){
transform = curMusic_sc.soundTransform;
transform.volume = valueMusic;
curMusic_sc.soundTransform = transform;
delFadeInTimer();
};
}
public function set ValueGroupSound(n:Number):void{
var transform:SoundTransform;
valueGroupSound = n;
if (groupSoundArr != null){
transform = groupSoundArr[currGroupSoundId]["soundChannel"].soundTransform;
transform.volume = n;
groupSoundArr[currGroupSoundId]["soundChannel"].soundTransform = transform;
};
}
private function remSoundArr(sc:SoundChannel):void{
var obj:Object;
var i:int;
while (i < soundArr.length) {
obj = soundArr[i];
if (((obj["soundChannel"]) && ((obj["soundChannel"] == sc)))){
obj["soundChannel"].stop();
obj["label"] = null;
obj["sound"] = null;
obj["soundChannel"] = null;
soundArr.splice(i, 1);
};
i++;
};
}
public function stopAllSound():void{
var i:int;
while (i < soundArr.length) {
delSound(soundArr[i]["soundChannel"]);
i++;
};
}
public function get FadeTimes():int{
return (fadeTimes);
}
public function fadeOutMusic():void{
if (curMusic_sc != null){
startFadeOut();
};
}
public function set FadeTimes(v:int):void{
fadeTimes = v;
}
public function get curMusic_sound():Sound{
return (curMusic_so);
}
private function init():void{
FadeTimes = 300;
Enabled = true;
MusicEnable = true;
ValueMusic = 1;
ValueSound = 1;
valueGroupSound = 1;
soundArr = new Array();
groupSoundArr = new Array();
}
private function _onSoundComplete(e:Event):void{
var sc:SoundChannel;
if ((e.currentTarget is SoundChannel)){
sc = (e.currentTarget as SoundChannel);
sc.removeEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
sc.stop();
} else {
return;
};
curMusic_sc = curMusic_so.play(0, 0, new SoundTransform(valueMusic));
if (curMusic_sc){
curMusic_sc.addEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
};
e.stopImmediatePropagation();
}
private function addSoundArr(obj:Object):void{
soundArr.push(obj);
}
public function overOldSound(s:String, v:Number, loops:int=0):void{
var same:Boolean;
var obj:Object;
var i:int;
if (enabled){
same = false;
i = 0;
while (i < soundArr.length) {
obj = soundArr[i];
if (obj["label"] == s){
same = true;
break;
};
i++;
};
if (same){
delSound(obj["soundChannel"]);
};
playSound(s, v, loops);
};
}
public function delAllTimer():void{
if (fadeInTimer != null){
fadeInTimer.removeEventListener(TimerEvent.TIMER, fadeIn);
fadeInTimer = null;
};
if (fadeOutTimer != null){
fadeOutTimer.removeEventListener(TimerEvent.TIMER, fadeOut);
fadeOutTimer = null;
};
}
private function startFadeIn(s:String, t:int):void{
initMusic(s, 0.3, t);
initFadeInTimer();
}
public function set ValueMusic(n:Number):void{
var transform:SoundTransform;
valueMusic = n;
if (curMusic_sc != null){
transform = curMusic_sc.soundTransform;
transform.volume = n;
curMusic_sc.soundTransform = transform;
};
}
public function stopSound(s:String):void{
var obj:Object;
var i:int;
while (i < soundArr.length) {
obj = soundArr[i];
if (obj["label"] == s){
delSound(obj["soundChannel"]);
break;
};
i++;
};
}
public function get Enabled():Boolean{
return (enabled);
}
private function delGroupSoundChannelEvent(sc:SoundChannel):void{
sc.removeEventListener(Event.SOUND_COMPLETE, groupSoundCompleteHandler);
}
private function fadeOut(e:TimerEvent):void{
var transform:SoundTransform;
if (curMusic_sc){
transform = curMusic_sc.soundTransform;
transform.volume = (transform.volume - VALUE_FADE);
curMusic_sc.soundTransform = transform;
if (curMusic_sc.soundTransform.volume <= 0){
stopFadeOut();
};
};
}
public function playSound(s:String, v:Number, loops:int=0):void{
if (enabled){
initSound(s, v, loops);
};
}
public function get ValueSound():Number{
return (valueSound);
}
public function get currentMusic_sc():String{
if (curMusic_sc == null){
return (null);
};
return (curMusic_st);
}
private function delSound(sc:SoundChannel):void{
delSoundChannelEvent(sc);
remSoundArr(sc);
}
private function timerHandler(e:TimerEvent):void{
if (curMusic_sc){
trace(curMusic_sc.position);
};
}
private function fadeIn(e:TimerEvent):void{
var transform:SoundTransform;
if (curMusic_sc){
transform = curMusic_sc.soundTransform;
transform.volume = (transform.volume + VALUE_FADE);
curMusic_sc.soundTransform = transform;
if (curMusic_sc.soundTransform.volume >= valueMusic){
stopFadeIn();
};
};
}
public function set Enabled(b:Boolean):void{
enabled = b;
if (b){
} else {
stopAllSound();
};
}
public function overNewSound(s:String, v:Number, loops:int=0):void{
var same:Boolean;
var obj:Object;
var i:int;
if (enabled){
same = false;
i = 0;
while (i < soundArr.length) {
obj = soundArr[i];
if (obj["label"] == s){
same = true;
break;
};
i++;
};
if (!same){
playSound(s, v, loops);
};
};
}
public function pauseMusic():void{
if (curMusic_sc != null){
pausePos = curMusic_sc.position;
curMusic_sc.stop();
curMusic_sc = null;
pauseMusic_st = curMusic_st;
};
}
public function set MusicEnable(b:Boolean):void{
musicEnabled = b;
if (curMusic_st != null){
if (b){
restartMusic();
} else {
pauseMusic();
};
};
}
private function delGroupSound():void{
var obj:Object = groupSoundArr[currGroupSoundId];
obj["soundChannel"].stop();
obj["soundChannel"] = null;
}
public function restartMusic():void{
if (pauseMusic_st == curMusic_st){
if (curMusic_so.length < pausePos){
pausePos = (pausePos % curMusic_so.length);
};
curMusic_sc = curMusic_so.play(pausePos, 0, new SoundTransform(valueMusic));
if (curMusic_sc){
curMusic_sc.addEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
};
if (curMusic_sc == null){
curMusic_sc = curMusic_so.play(0, int.MAX_VALUE, new SoundTransform(valueMusic));
if (curMusic_sc){
curMusic_sc.addEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
};
};
pausePos = 0;
} else {
initMusic(curMusic_st, ValueMusic);
};
}
private function stopFadeOut():void{
delFadeOutTimer();
delMusic();
if (fadeInLabel != null){
initMusic(fadeInLabel, 0, curMusic_rp);
initFadeInTimer();
fadeInLabel = null;
};
}
public function playMusic(s:String, v:Number, t:int=2147483647):void{
curMusic_st = s;
curMusic_rp = t;
if (musicEnabled){
if (curMusic_sc != null){
stopMusic();
};
initMusic(s, v, t);
};
}
public function overNewMusic(s:String, v:Number):void{
if (((!((curMusic_st == s))) && (musicEnabled))){
playMusic(s, v);
};
}
private function delMusic():void{
curMusic_sc.removeEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
curMusic_sc.stop();
curMusic_st = null;
curMusic_so = null;
curMusic_sc = null;
}
public function get ValueMusic():Number{
return (valueMusic);
}
private function initSound(s:String, v:Number, loops:int):void{
var obj:Object = new Object();
obj["label"] = s;
obj["sound"] = getSound(s);
obj["soundChannel"] = obj["sound"].play(0, loops, new SoundTransform(v));
initSoundChannelEvent(obj["soundChannel"]);
addSoundArr(obj);
}
private function getSound(s:String):Sound{
var temp:Class = (getDefinitionByName(s) as Class);
var returnObj:Sound = new (temp);
return (returnObj);
}
private function groupSoundCompleteHandler(e:Event):void{
delGroupSound();
currGroupSoundId++;
if (currGroupSoundId == groupSoundArr.length){
currGroupSoundId = 0;
};
initGroupSound();
}
public function fadeInMusic(s:String, t:int=2147483647):void{
curMusic_st = s;
curMusic_rp = t;
if (musicEnabled){
if (curMusic_sc != null){
fadeInLabel = s;
startFadeOut();
} else {
startFadeIn(s, t);
};
};
}
public function stopMusic():void{
if (curMusic_sc != null){
delMusic();
};
}
public function setOneValueSound(s:String, n:Number):void{
var transform:SoundTransform;
var i:int;
while (i < soundArr.length) {
if (s == soundArr[i]["label"]){
transform = soundArr[i]["soundChannel"].soundTransform;
};
transform.volume = n;
soundArr[i]["soundChannel"].soundTransform = transform;
i++;
};
}
private function initFadeOutTimer():void{
if (fadeOutTimer){
return;
};
if (fadeInTimer){
delFadeInTimer();
};
fadeOutTimer = new Timer((fadeTimes / (valueMusic / VALUE_FADE)));
fadeOutTimer.addEventListener(TimerEvent.TIMER, fadeOut);
fadeOutTimer.start();
}
private function initFadeInTimer():void{
if (fadeInTimer){
return;
};
if (fadeOutTimer){
delFadeOutTimer();
};
fadeInTimer = new Timer((fadeTimes / (valueMusic / VALUE_FADE)));
fadeInTimer.addEventListener(TimerEvent.TIMER, fadeIn);
fadeInTimer.start();
}
private function initSoundChannelEvent(sc:SoundChannel):void{
if (sc){
sc.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
};
}
public function get MusicEnable():Boolean{
return (musicEnabled);
}
public function stopGroupSound():void{
var obj:Object;
if (groupSoundArr != null){
obj = groupSoundArr[currGroupSoundId];
if (obj != null){
delGroupSoundChannelEvent(obj["soundChannel"]);
delGroupSound();
};
groupSoundArr = new Array();
currGroupSoundId = NaN;
};
}
private function delSoundChannelEvent(sc:SoundChannel):void{
if (sc){
sc.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
};
}
private function initMusic(s:String, v:Number, t:int=2147483647):void{
curMusic_st = s;
curMusic_so = getSound(s);
curMusic_sc = curMusic_so.play(0, 0, new SoundTransform(v));
if (curMusic_sc){
curMusic_sc.addEventListener(Event.SOUND_COMPLETE, _onSoundComplete);
};
}
private function delFadeOutTimer():void{
fadeOutTimer.stop();
fadeOutTimer.removeEventListener(TimerEvent.TIMER, fadeOut);
fadeOutTimer = null;
}
private function initGroupSoundChannelEvent(sc:SoundChannel):void{
sc.addEventListener(Event.SOUND_COMPLETE, groupSoundCompleteHandler);
}
private function delFadeInTimer():void{
fadeInTimer.stop();
fadeInTimer.removeEventListener(TimerEvent.TIMER, fadeIn);
fadeInTimer = null;
}
private function soundCompleteHandler(e:Event):void{
delSound((e.target as SoundChannel));
}
public function addAllTimer():void{
if (fadeInTimer == null){
fadeInTimer = new Timer((fadeTimes / (valueMusic / VALUE_FADE)));
fadeInTimer.addEventListener(TimerEvent.TIMER, fadeIn);
fadeInTimer.start();
};
if (fadeOutTimer == null){
fadeOutTimer = new Timer((fadeTimes / (valueMusic / VALUE_FADE)));
fadeOutTimer.addEventListener(TimerEvent.TIMER, fadeOut);
fadeOutTimer.start();
};
}
private function startFadeOut():void{
initFadeOutTimer();
}
public static function get instance():SoundsManager{
if (currentInstance == null){
currentInstance = new (SoundsManager);
};
return (currentInstance);
}
}
}//package zlong.utils
Section 239
//framework_internal (zlong.framework_internal)
package zlong {
public namespace framework_internal = "http://www.zlonggames.com/flash/framework/internal";
}//package zlong
Section 240
//GameSetting (zlong.GameSetting)
package zlong {
import flash.display.*;
import zlong.site.*;
import zlong.country.*;
import zlong.data.*;
import zlong.display.*;
public class GameSetting {
private var _XMLLoader:LocalSiteDataLoader;
localComponent_internal static const VERSION:String = "v1.09.201012281609";
public static const PORTAL_TYPE_FAMILY:String = "family";
public static const PORTAL_TYPE_TWEEN:String = "tween";
public static const PORTAL_TYPE_GIRL:String = "girl";
public static const PORTAL_TYPE_TEEN:String = "teen";
public static const PORTAL_TYPE_ZAPAPA:String = "zapapa";
public static const PORTAL_TYPE_HYVES:String = "hyves";
public function GameSetting(displayObject:InteractiveObject, cnversion:Boolean, portal:String, name:String, html:String, width:int, height:int, loadSiteInfoXml:Boolean=true){
super();
GameInfo.cnversion = cnversion;
GameInfo.portal = portal;
GameInfo.name = name;
GameInfo.html = html;
GameInfo.width = width;
GameInfo.height = height;
if (loadSiteInfoXml){
this._XMLLoader = new LocalSiteDataLoader();
};
this.init();
this.initMenu(displayObject);
}
private function init():void{
new CountryCookie();
CountryInfo.instance.portal = GameInfo.portal;
if (CountryCookie.country == null){
CountryInfo.instance.country = "en_us";
} else {
CountryInfo.instance.country = String(CountryCookie.country);
};
}
private function initMenu(p:InteractiveObject):void{
new Menu(p);
}
}
}//package zlong
Section 241
//localComponent_internal (zlong.localComponent_internal)
package zlong {
public namespace localComponent_internal = "http://www.zlonggames.com/flash/localComponent/internal";
}//package zlong
Section 242
//Ball_1 (Ball_1)
package {
import flash.display.*;
public dynamic class Ball_1 extends MovieClip {
}
}//package
Section 243
//Ball_2 (Ball_2)
package {
import flash.display.*;
public dynamic class Ball_2 extends MovieClip {
}
}//package
Section 244
//Ball_3 (Ball_3)
package {
import flash.display.*;
public dynamic class Ball_3 extends MovieClip {
}
}//package
Section 245
//Ball_4 (Ball_4)
package {
import flash.display.*;
public dynamic class Ball_4 extends MovieClip {
}
}//package
Section 246
//Ball_5 (Ball_5)
package {
import flash.display.*;
public dynamic class Ball_5 extends MovieClip {
}
}//package
Section 247
//Ball_6 (Ball_6)
package {
import flash.display.*;
public dynamic class Ball_6 extends MovieClip {
}
}//package
Section 248
//CountriesBox (CountriesBox)
package {
import flash.display.*;
import zlong.display.*;
public dynamic class CountriesBox extends CountriesBox {
public var countryName:MovieClip;
public var selectbox:MovieClip;
public var popList:MovieClip;
public var flag:MovieClip;
}
}//package
Section 249
//Credit (Credit)
package {
import flash.display.*;
public dynamic class Credit extends MovieClip {
public var ok_button:MovieClip;
}
}//package
Section 250
//DiffSelect (DiffSelect)
package {
import flash.display.*;
import flash.text.*;
public dynamic class DiffSelect extends MovieClip {
public var easyMode_button:MovieClip;
public var hardMode_button:MovieClip;
public var normalMode_button:MovieClip;
public var back_button:MovieClip;
public var difficult_textField:TextField;
public var ok_button:MovieClip;
}
}//package
Section 251
//export (export)
package {
import flash.display.*;
public dynamic class export extends MovieClip {
}
}//package
Section 252
//fruit_change (fruit_change)
package {
import flash.media.*;
public dynamic class fruit_change extends Sound {
}
}//package
Section 253
//fruit_game (fruit_game)
package {
import flash.media.*;
public dynamic class fruit_game extends Sound {
}
}//package
Section 254
//fruit_lose (fruit_lose)
package {
import flash.media.*;
public dynamic class fruit_lose extends Sound {
}
}//package
Section 255
//fruit_menu (fruit_menu)
package {
import flash.media.*;
public dynamic class fruit_menu extends Sound {
}
}//package
Section 256
//fruit_select (fruit_select)
package {
import flash.media.*;
public dynamic class fruit_select extends Sound {
}
}//package
Section 257
//GameLost (GameLost)
package {
import flash.display.*;
public dynamic class GameLost extends MovieClip {
public var ok_button:MovieClip;
}
}//package
Section 258
//gameScreen (gameScreen)
package {
import flash.display.*;
import flash.text.*;
public dynamic class gameScreen extends MovieClip {
public var diff_textField:TextField;
public var pause_button:MovieClip;
public var level_textField:TextField;
public var lose_button:MovieClip;
public var user_textField:TextField;
public var win_button:MovieClip;
}
}//package
Section 259
//GameWin (GameWin)
package {
import flash.display.*;
public dynamic class GameWin extends MovieClip {
public var ok_button:MovieClip;
}
}//package
Section 260
//HideConsole (HideConsole)
package {
public var HideConsole:Object;
HideConsole = false;
}//package
Section 261
//HowtoPlay (HowtoPlay)
package {
import flash.display.*;
public dynamic class HowtoPlay extends MovieClip {
public var ok_button:MovieClip;
}
}//package
Section 262
//hyves_games (hyves_games)
package {
import zlong.display.*;
public dynamic class hyves_games extends Hyves {
}
}//package
Section 263
//HyvesLoading (HyvesLoading)
package {
import zlong.display.*;
public dynamic class HyvesLoading extends HyvesLoading {
public var logo:Logo;
public var logohyves:Logo;
}
}//package
Section 264
//LevelLost (LevelLost)
package {
import flash.display.*;
public dynamic class LevelLost extends MovieClip {
public var back_button:MovieClip;
public var retry_button:MovieClip;
}
}//package
Section 265
//LevelSelect (LevelSelect)
package {
import flash.display.*;
import flash.text.*;
public dynamic class LevelSelect extends MovieClip {
public var levelbutton_2:MovieClip;
public var levelNum_textField:TextField;
public var levelbutton_3:MovieClip;
public var levelbutton_1:MovieClip;
public var levelbutton_4:MovieClip;
public var levelbutton_5:MovieClip;
public var ok_button:MovieClip;
}
}//package
Section 266
//LevelWin (LevelWin)
package {
import flash.display.*;
public dynamic class LevelWin extends MovieClip {
public var nextLevel_button:MovieClip;
}
}//package
Section 267
//localization (localization)
package {
import flash.display.*;
public dynamic class localization extends MovieClip {
}
}//package
Section 268
//Logo (Logo)
package {
import flash.display.*;
import zlong.display.*;
public dynamic class Logo extends Logo {
public var displayArea_mc:MovieClip;
public var wh:MovieClip;
}
}//package
Section 269
//logoBtn (logoBtn)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import zlong.display.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.xml.*;
public dynamic class logoBtn extends ExtButton {
public var __id0_:Logo;
public function logoBtn(){
__setProp___id0__logoBtn_Layer4_0();
}
function __setProp___id0__logoBtn_Layer4_0(){
try {
__id0_["componentInspectorSetting"] = true;
} catch(e:Error) {
};
__id0_.alignHorizontal = "Center";
__id0_.alignVertical = "Center";
__id0_.maxHeight = 25;
__id0_.maxWidth = 180;
__id0_.position = "logo_preloader";
try {
__id0_["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 270
//Main (Main)
package {
import flash.display.*;
import zlong.events.*;
import flash.events.*;
import zlong.spilSystemTool.*;
import zlong.data.*;
import cn.itamt.utils.*;
import zlong.synge.demo.*;
import zlong.utils.*;
import zlong.Template.*;
import zlong.manager.*;
import zlong.synge.synge_code_lab.utils.*;
public class Main extends AbstractMainClass {
private var _GameStart:GameStart;
private var _UIManager:UIManager;
public var stage:Stage;
public static var _gameStarted:Boolean = false;
private static var _instance:Main;
public static var gameinHelp:Boolean;
public function Main(mainMc:Sprite){
_instance = this;
super(mainMc);
if (Root.__debug__){
};
gameStart();
}
private function submitScore($s:Number):void{
var lasts:Number = Data.userProfile.score;
if ($s > lasts){
Award_HighScore.instance.submitScore($s);
Data.userProfile.score = $s;
Data.saveUserProfile();
};
}
private function _onLoseGame(evt:UIEvent):void{
Data.userProfile.failCount++;
Data.saveUserProfile();
this.submitScore(GameStart.score);
__GameMc.dispatchEvent(new UIEvent(evt.type));
}
private function _on_PlayGame(evt:UIEvent):void{
if (Main._gameStarted){
this._GameStart.startLevel(1, __GameMc);
} else {
this._UIManager.howtoplay(evt);
Main._gameStarted = true;
};
stage.focus = stage;
evt.stopPropagation();
}
private function initGameSettings():void{
Data.init();
stage.quality = Data.userProfile.quality;
SoundsManager.instance.Enabled = Data.userProfile.soundEnable;
SoundsManager.instance.MusicEnable = Data.userProfile.musicEnable;
ListenKey.listen(__GameMc);
}
private function gameStart():void{
stage = __GameMc.stage;
if (Root.__debug__){
Inspector.getInstance().init(__GameMc, true);
};
initGameSettings();
this._UIManager = new UIManager(__GameMc);
this._GameStart = GameStart.instance();
this._GameStart.addEventListener(UIEvent.MAINMENU, this._onMainMenu);
this._GameStart.addEventListener(UIEvent.LOSE_GAME, this._onLoseGame);
this._GameStart.addEventListener(UIEvent.WIN_GAME, this._onWinGame);
this._GameStart.addEventListener(UIEvent.HOW_TO_PLAY, _onHelp);
this._UIManager.addEventListener(UIEvent.PLAY_GAME, this._on_PlayGame);
Ball.init();
}
private function test(e:Event):void{
}
private function _onMainMenu(evt:UIEvent):void{
this.submitScore(GameStart.score);
__GameMc.dispatchEvent(new UIEvent(evt.type));
}
private function _onWinGame(evt:UIEvent):void{
this.submitScore(GameStart.score);
__GameMc.dispatchEvent(new UIEvent(evt.type));
}
private function _onHelp(e:UIEvent):void{
this._UIManager.howtoplay(e);
e.stopImmediatePropagation();
}
public static function get instance():Main{
return (_instance);
}
}
}//package
Section 271
//mainlogo (mainlogo)
package {
import zlong.display.*;
public dynamic class mainlogo extends TranText {
}
}//package
Section 272
//mainScreen (mainScreen)
package {
import flash.display.*;
public dynamic class mainScreen extends MovieClip {
public var gameStart_button:MovieClip;
public var music_button:MovieClip;
public var sound_button:MovieClip;
public var howtoplay_button:MovieClip;
public var quality_button:MovieClip;
public var resume_button:MovieClip;
}
}//package
Section 273
//Mc_UiLoading (Mc_UiLoading)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Mc_UiLoading extends MovieClip {
public var perBar:MovieClip;
public var perText:TextField;
}
}//package
Section 274
//menu_press (menu_press)
package {
import flash.media.*;
public dynamic class menu_press extends Sound {
}
}//package
Section 275
//menu_touch (menu_touch)
package {
import flash.media.*;
public dynamic class menu_touch extends Sound {
}
}//package
Section 276
//MoreGamesLogo (MoreGamesLogo)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import zlong.display.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.desktop.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.globalization.*;
import flash.net.drm.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.sensors.*;
import flash.system.*;
import flash.text.ime.*;
import flash.text.engine.*;
import flash.xml.*;
public dynamic class MoreGamesLogo extends ExtButton {
public var __id1_:Logo;
public function MoreGamesLogo(){
this.__setProp___id1__MoreGamesLogo_Layer4_0();
}
function __setProp___id1__MoreGamesLogo_Layer4_0(){
try {
this.__id1_["componentInspectorSetting"] = true;
} catch(e:Error) {
};
this.__id1_.alignHorizontal = "Center";
this.__id1_.alignVertical = "Down";
this.__id1_.maxHeight = 20;
this.__id1_.maxWidth = 150;
this.__id1_.position = "logo_preloader";
try {
this.__id1_["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 277
//MoreGamesLogo1 (MoreGamesLogo1)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import zlong.display.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.xml.*;
public dynamic class MoreGamesLogo1 extends ExtButton {
public var site:MovieClip;
public var __id1_:Logo;
public function MoreGamesLogo1(){
addFrameScript(0, frame1);
__setProp___id1__MoreGamesLogo();
}
function __setProp___id1__MoreGamesLogo(){
try {
__id1_["componentInspectorSetting"] = true;
} catch(e:Error) {
};
__id1_.alignHorizontal = "Center";
__id1_.alignVertical = "Down";
__id1_.maxHeight = 20;
__id1_.maxWidth = 150;
__id1_.position = "logo_preloader";
try {
__id1_["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function frame1(){
stop();
}
}
}//package
Section 278
//nextlevel (nextlevel)
package {
import flash.media.*;
public dynamic class nextlevel extends Sound {
}
}//package
Section 279
//other_click (other_click)
package {
import flash.media.*;
public dynamic class other_click extends Sound {
}
}//package
Section 280
//PowerBy (PowerBy)
package {
import flash.display.*;
import zlong.display.*;
public dynamic class PowerBy extends Hyves {
public var poweredby:MovieClip;
}
}//package
Section 281
//Root (Root)
package {
import zlong.Template.*;
public class Root extends AbstractRootClass {
public static const STAGE_WIGHT:int = 500;
public static const GAME_CLASS_NAME:String = "Main";
public static const STAGE_HEIGHT:int = 500;
public static const PORTAL_TYPE:String = "family";
public static const VERSION_NUM:String = "v.1.02";
public static const __debug__:Boolean = false;
public static const LOADING_CLASS_NAME:String = "zlong.ui.UILoading";
public static const GAME_FRAMERATE:int = 29;
public static const GAME_NAME:String = "FLIP FRUIT";
public function Root(){
super();
}
override protected function script0():void{
Trace("script0");
}
override protected function script1():void{
Trace("script1");
}
override protected function script2():void{
Trace("script2");
}
}
}//package
Section 282
//Trace (Trace)
package {
import flash.utils.*;
import zlong.breathxue.utils.debug.*;
public function Trace(... _args):void{
var i:String;
var TcClass:Class;
var args = _args;
var arg0 = "";
if ((args[0] is String)){
arg0 = args[0];
if ((((((((arg0.charAt(0) == "|")) && ((arg0.charAt(1) == "|")))) && ((arg0.charAt((arg0.length - 2)) == "|")))) && ((arg0.charAt((arg0.length - 1)) == "|")))){
arg0 = arg0.substring(1, (arg0.length - 1));
args.shift();
} else {
arg0 = "";
};
};
var isShowConsole:Boolean;
if (HideConsole == false){
isShowConsole = true;
} else {
if (HideConsole == true){
isShowConsole = false;
} else {
for (i in HideConsole) {
if (HideConsole[i] == arg0){
isShowConsole = false;
break;
};
};
};
};
if (isShowConsole){
trace((arg0 + args.join(" ")));
};
if (TcShow){
TcClass = (getDefinitionByName("zlong.breathxue.utils.debug.TC") as Class);
//unresolved jump
var _slot1 = e;
TcShow = false;
if (TcClass){
var _local3 = TcClass;
_local3["SHOW"](arg0, args);
};
};
}
}//package
Section 283
//txt_back (txt_back)
package {
import zlong.display.*;
public dynamic class txt_back extends TranText {
}
}//package
Section 284
//txt_Clear_percentage (txt_Clear_percentage)
package {
import zlong.display.*;
public dynamic class txt_Clear_percentage extends TranText {
}
}//package
Section 285
//txt_Congratulations (txt_Congratulations)
package {
import zlong.display.*;
public dynamic class txt_Congratulations extends TranText {
}
}//package
Section 286
//txt_extra (txt_extra)
package {
import zlong.display.*;
public dynamic class txt_extra extends TranText {
}
}//package
Section 287
//txt_Game_complete (txt_Game_complete)
package {
import zlong.display.*;
public dynamic class txt_Game_complete extends TranText {
}
}//package
Section 288
//txt_gameover (txt_gameover)
package {
import zlong.display.*;
public dynamic class txt_gameover extends TranText {
}
}//package
Section 289
//txt_howtoplay (txt_howtoplay)
package {
import zlong.display.*;
public dynamic class txt_howtoplay extends TranText {
}
}//package
Section 290
//txt_inhelp_play (txt_inhelp_play)
package {
import zlong.display.*;
public dynamic class txt_inhelp_play extends TranText {
}
}//package
Section 291
//txt_inhelpBack (txt_inhelpBack)
package {
import zlong.display.*;
public dynamic class txt_inhelpBack extends TranText {
}
}//package
Section 292
//txt_level (txt_level)
package {
import zlong.display.*;
public dynamic class txt_level extends TranText {
}
}//package
Section 293
//txt_Level_up (txt_Level_up)
package {
import zlong.display.*;
public dynamic class txt_Level_up extends TranText {
}
}//package
Section 294
//txt_Levelclear (txt_Levelclear)
package {
import zlong.display.*;
public dynamic class txt_Levelclear extends TranText {
}
}//package
Section 295
//txt_Levelfailed (txt_Levelfailed)
package {
import zlong.display.*;
public dynamic class txt_Levelfailed extends TranText {
}
}//package
Section 296
//txt_Mainmenu (txt_Mainmenu)
package {
import zlong.display.*;
public dynamic class txt_Mainmenu extends TranText {
}
}//package
Section 297
//txt_menu (txt_menu)
package {
import zlong.display.*;
public dynamic class txt_menu extends TranText {
}
}//package
Section 298
//txt_more_game (txt_more_game)
package {
import zlong.display.*;
public dynamic class txt_more_game extends TranText {
}
}//package
Section 299
//txt_Notrunsleft (txt_Notrunsleft)
package {
import zlong.display.*;
public dynamic class txt_Notrunsleft extends TranText {
}
}//package
Section 300
//txt_Reset (txt_Reset)
package {
import zlong.display.*;
public dynamic class txt_Reset extends TranText {
}
}//package
Section 301
//txt_Restartgame (txt_Restartgame)
package {
import zlong.display.*;
public dynamic class txt_Restartgame extends TranText {
}
}//package
Section 302
//txt_resume (txt_resume)
package {
import zlong.display.*;
public dynamic class txt_resume extends TranText {
}
}//package
Section 303
//txt_Shuffle (txt_Shuffle)
package {
import zlong.display.*;
public dynamic class txt_Shuffle extends TranText {
}
}//package
Section 304
//txt_sitelock (txt_sitelock)
package {
import zlong.display.*;
public dynamic class txt_sitelock extends TranText {
}
}//package
Section 305
//txt_start (txt_start)
package {
import zlong.display.*;
public dynamic class txt_start extends TranText {
}
}//package
Section 306
//txt_Startfromhere (txt_Startfromhere)
package {
import zlong.display.*;
public dynamic class txt_Startfromhere extends TranText {
}
}//package
Section 307
//txt_startgame (txt_startgame)
package {
import zlong.display.*;
public dynamic class txt_startgame extends TranText {
}
}//package
Section 308
//txt_statistica (txt_statistica)
package {
import zlong.display.*;
public dynamic class txt_statistica extends TranText {
}
}//package
Section 309
//txt_Theabjectofthegameistochangeallofthesquaresonth (txt_Theabjectofthegameistochangeallofthesquaresonth)
package {
import zlong.display.*;
public dynamic class txt_Theabjectofthegameistochangeallofthesquaresonth extends TranText {
}
}//package
Section 310
//txt_Tryagain (txt_Tryagain)
package {
import zlong.display.*;
public dynamic class txt_Tryagain extends TranText {
}
}//package
Section 311
//txt_turnslef (txt_turnslef)
package {
import zlong.display.*;
public dynamic class txt_turnslef extends TranText {
}
}//package
Section 312
//txt_Youcanshufflethesquares2timesbeforestartthelevel (txt_Youcanshufflethesquares2timesbeforestartthelevel)
package {
import zlong.display.*;
public dynamic class txt_Youcanshufflethesquares2timesbeforestartthelevel extends TranText {
}
}//package
Section 313
//txt_Yourscore (txt_Yourscore)
package {
import zlong.display.*;
public dynamic class txt_Yourscore extends TranText {
}
}//package
Section 314
//UI_game_in (UI_game_in)
package {
import flash.display.*;
import flash.text.*;
public dynamic class UI_game_in extends MovieClip {
public var startp:MovieClip;
public var statisBt:MovieClip;
public var totalNum:MovieClip;
public var menuBt:MovieClip;
public var levelUp:MovieClip;
public var bt_1:MovieClip;
public var effectExtra:MovieClip;
public var bt_2:MovieClip;
public var bt_3:MovieClip;
public var bt_4:MovieClip;
public var txtLevel:TextField;
public var aaa:logoBtn;
public var bt_5:MovieClip;
public var shuffleBt:MovieClip;
public var txtStep:TextField;
public var effectScore1w:MovieClip;
public var bt_6:MovieClip;
public var noturn:MovieClip;
public var showExtra:MovieClip;
}
}//package
Section 315
//UI_gameover (UI_gameover)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.xml.*;
public dynamic class UI_gameover extends MovieClip {
public var score:TextField;
public var moreGamesBt:MoreGamesLogo1;
public var tryAgainBt:MovieClip;
public var mainMenuBt:MovieClip;
public var logo_button:MovieClip;
public function UI_gameover(){
__setProp_moreGamesBt_ui_gameover_txt_0();
}
function __setProp_moreGamesBt_ui_gameover_txt_0(){
try {
moreGamesBt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
moreGamesBt.position = "button_mainscreen_moregames";
moreGamesBt.type = "moregames";
try {
moreGamesBt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 316
//UI_howtoplay (UI_howtoplay)
package {
import flash.display.*;
public dynamic class UI_howtoplay extends MovieClip {
public var bt_1:MovieClip;
public var bt_2:MovieClip;
public var bt_3:MovieClip;
public var bt_4:MovieClip;
public var bt_5:MovieClip;
public var shuffleBt:MovieClip;
public var bt_6:MovieClip;
public var ok_button:MovieClip;
}
}//package
Section 317
//UI_loading (UI_loading)
package {
import flash.display.*;
import flash.text.*;
public dynamic class UI_loading extends MovieClip {
public var perText:TextField;
public var perBar:MovieClip;
}
}//package
Section 318
//UI_mainmenu (UI_mainmenu)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.xml.*;
public dynamic class UI_mainmenu extends MovieClip {
public var moreGame_button:MoreGamesLogo1;
public var gameStart_button:MovieClip;
public var music_button:MovieClip;
public var sound_button:MovieClip;
public var versionTxt:TextField;
public var help_button:MovieClip;
public var logo_button:MovieClip;
public function UI_mainmenu(){
__setProp_moreGame_button_ui_mainmenu_();
}
function __setProp_moreGame_button_ui_mainmenu_(){
try {
moreGame_button["componentInspectorSetting"] = true;
} catch(e:Error) {
};
moreGame_button.position = "button_mainscreen_moregames";
moreGame_button.type = "moregames";
try {
moreGame_button["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 319
//UI_menu (UI_menu)
package {
import flash.display.*;
public dynamic class UI_menu extends MovieClip {
public var soundBt:MovieClip;
public var backBt:MovieClip;
public var helpBt:MovieClip;
public var mainMenuBt:MovieClip;
public var musicBt:MovieClip;
}
}//package
Section 320
//UI_statis (UI_statis)
package {
import flash.display.*;
import flash.text.*;
public dynamic class UI_statis extends MovieClip {
public var backBt:MovieClip;
public var txt_P:TextField;
public var txt_LC:TextField;
public var txt_LF:TextField;
public var resetBt:MovieClip;
}
}//package
Section 321
//UI_win (UI_win)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.xml.*;
public dynamic class UI_win extends MovieClip {
public var score:TextField;
public var moreGamesBt:MoreGamesLogo1;
public var tryAgainBt:MovieClip;
public var mainMenuBt:MovieClip;
public var logo_button:MovieClip;
public function UI_win(){
__setProp_moreGamesBt_ui_win_txt_0();
}
function __setProp_moreGamesBt_ui_win_txt_0(){
try {
moreGamesBt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
moreGamesBt.position = "button_mainscreen_moregames";
moreGamesBt.type = "moregames";
try {
moreGamesBt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 322
//Your_total_score (Your_total_score)
package {
import zlong.display.*;
public dynamic class Your_total_score extends TranText {
}
}//package