STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228054
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/94389221?noj=FRM94389221-25DC" width="1" height="1"></div>

flip-fruit.swf

This is the info page for
Flash #115894

(Click the ID number above for more basic data on this flash file.)


Text
100

%

© SPIL GAMES B.V

MORE GAMES

GAME COMPLETE!

SPEL UITGESPEELD!

JEU RÉUSSI !

SPIEL VOLLSTÄNDIG!

¡JUEGO COMPLETADO!

CHEGOU AO FINAL DO JOGO!

JOGO TERMINADO!

GIOCO COMPLETATO!

SPELET KLARAT!

GRA UKOŃCZONA!

ИГРА ПРОЙДЕНА!

GAME SELESAI!

ゲームクリア!

完成游戏!

¡COMPLETASTE EL JUEGO!

¡JUEGO COMPLETADO!

Game LOST

OK

Total Score:

Total Score:

Totaalscore:

Score total :

Gesamtpunktzahl:

Puntuación total:

Total:

Punteggio totale:

Totalpoäng:

Łączny wynik:

Общий счет:

Total Skor:

トータルスコア:

总得分:

Puntaje total:

Loading Screen

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">100%</font></p>

Next Level!

Level Up!

Volgend level!

Niveau
suivant !

Nächster
Level!

¡Siguiente
nivel!

Fase
seguinte!

Nível
seguinte!

Prossimo
livello!

Nästa nivå!

Następny
poziom!

Следующи
й уровень!

Level
Berikutnya!

次のレベル!

下一等级!

¡Siguiente
nivel!

¡Siguiente
nivel!

Game UI

PAUSE

Lose Level

Win Level

Current Level:

Current User:

Current Diff

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">easy</font></p>

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">easy</font></p>

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">player</font></p>

9

Make all the fruit on the board
match before your turns run out to
complete the level. Convert
adjacent fruit by clicking on a
matching fruit's icon at the bottom
of the screen, and gradually take
over the board. Change more than
20 fruits at once to score a bonus!

Change all the fruit on the board to
the same type to complete the
level. Using the selector below the
board, begin by selecting a type of
fruit that is adjacent to the starting
fruit. Gradually take over the board
by selecting fruits that are adjacent
to those already changed. Change
more than 20 fruits at once to win a
bonus!

Om het level te halen, verander je
binnen het gegeven aantal zetten al
het fruit in het veld naar dezelfde
soort. Verander het naastgelegen
stuk fruit door op de bijhorende
fruitsoort onderin te klikken, en ga
zo verder tot je het hele veld hebt
overgenomen. Verander meer dan
20 stukken fruit met één zet voor
een bonus!

Pour réussir un niveau tu dois
uniformiser tous les fruits de l'écran
avant de ne plus avoir de tours.
Transforme les fruits adjacents en
cliquant au bas de l'écran sur
l'icône du fruit correspondant et
uniformise l'écran peu à peu.
Transforme plus de 20 fruits à la
fois pour obtenir un bonus !

Um den Level abzuschließen, musst
du alle Früchte auf dem Feld in eine
einzige Sorte umwandeln, bevor
deine Züge verbraucht sind. Wandle
benachbarte Früchte um, indem du
unten auf das Symbol einer der
Fruchtsorten klickst, und übernimm
so schrittweise das Feld. Wandle
mehr als 20 Früchte auf einmal um,
um einen Bonus zu erhalten!

Combina todas las frutas del panel
antes de quedarte sin giros para
acabar el nivel. Convierte la fruta
adyacente haciendo clic en el icono
de una fruta que combine en la
parte inferior de la pantalla, y ve
conquistando poco a poco el panel.
¡Cambia más de 20 frutas a la vez
para conseguir una bonificación!

Agrupe frutas antes que acabem os
turnos. Você pode transformar
frutos usando os ícones na parte de
baixo da tela, para controlar a
partida. Se você conseguir
transformar mais que 20 frutos no
mesmo tempo, você conseguirá um
bônus!

Faz conjuntos com todas as peças
de fruta antes que fiques sem
turnos. Converte os frutos
utilizando o ícone correspondente
na parte de baixo do ecrã, e
controla o tabuleiro. Se conseguires
converter mais de 20 frutos ao
mesmo tempo, obterás um bónus!

Per superare il livello, abbina tutti i
frutti nella griglia senza finire i
turni. Trasforma tutti i frutti
adiacenti cliccando sull'icona del
frutto corrispondente in basso e
conquista gradualmente la griglia.
Trasforma più di 20 frutti in un
colpo solo per vincere un bonus!

Klara en nivå genom att matcha alla
frukter på spelbrädet innan dina
drag tagit slut. Förvandla
intilliggande frukter genom att
klicka på en matchande fruktikon
längst ned på skärmen och fyll
gradvis hela brädet. Förvandla fler
än 20 frukter samtidigt för att få en
bonus!

Zmień wszystkie owoce na planszy
na identyczne, zanim zabraknie ci
ruchów, aby ukończyć poziom.
Zmieniaj przylegające owoce,
klikając na odpowiednią ikonkę
owocu u dołu ekranu, i stopniowo
przejmij planszę. Zmień więcej niż
20 owoców za jednym razem, aby
zdobyć bonus!

Твоя задача – постепенно
превратить все фрукты на доске в
груду одинаковых, уложившись в
отведенное число ходов. Чтобы
добавить в свою груду
расположенный рядом фрукт,
щелкни по соответствующему
значку фрукта внизу экрана. Если
тебе удастся добавить в свою
груду более 20 фруктов за раз, ты
получишь бонус!

Pastikan semua buah di atas papan
cocok sebelum giliran kamu habis
untuk menyelesaikan level. Ubah
buah di sebelahnya dengan
mengklik ikon buah yang sesuai
pada bagian bawah layar, dan
perlahan-lahan kuasai papan. Ubah
lebih dari 20 buah sekaligus untuk
mendapatkan bonus!

ターン数がなくなる前に、ボード内にある
フルーツをすべて一つのフルーツにそろ
えればレベルクリアです。まず、最初のフ
ルーツのとなりにあるフルーツを、画面の
下にあるアイコンをクリックして入れ替え
ましょう。そうしながら、少しずつそろえて
いきます。フルーツを一度に20コ以上変
えれば、ボーナスポイントです!

在次数用完之前将板上的水果配对,
以完成该等级游戏。在屏幕下方点击
匹配水果图标以转换邻近的水果并
渐渐占据整个板面。一次转换多于
20个水果可以获得奖励!

Hacé coincidir toda la fruta del
tablero antes de que se acaben tus
turnos para completar el nivel.
Convertí la fruta adyacente
haciendo clic en el icono de una
fruta coincidente en la parte inferior
de la pantalla, y controlá el tablero
gradualmente. ¡Cambiá más de 20
frutas a la vez para ganar puntos
extra!

Haz que todas las frutas del tablero
coincidan antes de que se acabe el
turno para completar el nivel.
Convierte la fruta que está junto
haciendo clic en el icono de un
fruta similar en la parte inferior de
la pantalla, y gradualmente toma el
control del tablero. ¡Cambia más de
20 frutas a la vez para obtener
puntos extra!

Play

Spelen

Jouer

Spielen

Jugar

Jogar

Gioca

Spela

Graj

Играть

Main

プレイ

开始游戏

Back

Terug

Retour

Zurück

Atrás

Voltar

Indietro

Tillbaka

Powrót

Назад

Kembali

戻る

返回

Level Win!

NextLevel

Main Menu

Hoofdmenu

Menu principal

Hauptmenü

Menú principal

Menu Principal

Menu principale

Huvudmeny

Menu główne

Главное меню

Menu Utama

メインメニュー

主菜单

More Games

Meer spellen

Plus de jeux

Mehr Spiele

Más juegos

Mais jogos

Altri giochi

Fler spel

Więcej gier

Другие игры

Game Lainnya

他のゲームで遊ぶ

更多游戏

Play for high scores
& awards at:

Play for highscores
and awards at:

Speel voor topscores
en prijzen op:

Joue pour des meilleurs
scores et des prix sur :

Spiele für Highscores
& Preise auf:

Juega por puntuaciones
máximas y premios en:

Jogue para recordes e
premiações em:

Joga, bate recordes
e ganha prémios em:

Gioca per punteggi
più alti e premi su:

Spela om toppoäng
och priser på:

Zagraj z rankigiem i
trofeami na:

Сыграй с рекордами
и наградами на

Main untuk skor tertinggi
& hadiah di:

ハイスコアおよびアワー
ドを目指してプレイ:

获取高分和奖励,尽在:

Jugá para obtener puntajes
altos y premios en:

Juega para puntajes
altos y premios en:

Reset

Réinitialiser

Restablecer

Reiniciar

Azzera

Nollställ

Сброс

Atur Ulang

リセット

重置

Restaurar

100000000

Levels Cleared:

Levels Cleared:

Levels voltooid:

Niveaux réussis :

Abgeschlossene Level:

Niveles completados:

Fases concluídas:

Níveis terminados:

Livelli superati:

Nivåer klarade:

Poziomy ukończone:

Пройдено уровней:

Level Diselesaikan:

クリアしたレベル:

已完成等级:

Levels Failed:

Levels Failed:

Levels mislukt:

Niveaux ratés :

Fehlgeschlagene Level:

Niveles fallidos:

Fases perdidas:

Níveis falhados:

Livelli falliti:

Nivåer ej klarade:

Poziomy nieukończone:

Провалено уровней:

Level Gagal:

失敗したレベル:

失败的等级:

Niveles fallados:

Percentage Cleared:

Percentage Cleared:

Percentage voltooid:

Pourcentage de réussites :

Abgeschlossen in Prozent:

Porcentaje completado:

Porcentagem de concluídas:

Percentagem de terminados:

Percentuale completa:

Procent klarat:

Procent postępu:

Процент побед:

Persentase Diselesaikan:

達成度:

已完成等级百分比:

Porcentaje alcanzado:

How to Play

Speluitleg

Instructions

Spielanleitung

Cómo jugar

Como jogar

Come giocare

Spelregler

Jak grać

Как играть

Cara Main

遊び方

游戏玩法

Try Again

Opnieuw proberen

Réessayer

Nochmal probieren

Volver a intentar

Tente de novo

Tenta outra vez

Ritenta

Försök igen

Spróbuj ponownie

Еще раз

Coba Lagi

もう一度トライ

再试一次

Intentar de nuevo

You can shuffle the board
2 times before starting
the level.

You can shuffle the board
twice before you start the
level.

Je kunt het veld twee
keer door elkaar husselen
voordat je aan het level
begint.

Tu peux mélanger l'écran
deux fois avant de
commencer le niveau.

Du kannst das Spielfeld 2
Mal mischen, bevor du
den Level startest.

Puedes revolver el panel
2 veces antes de iniciar
un nivel.

Você pode embaralhar
duas vezes antes de
começar a fase.

Podes baralhar o
tabuleiro 2 vezes antes de
iniciares o nível.

Puoi mescolare i frutti
due volte prima di
iniziare.

Du kan blanda föremålen
på brädet 2 gånger innan
du börjar nivån.

Zanim rozpoczniesz
poziom, możesz
przetasować planszę 2
razy.

Ты можешь дважды
перемешать фрукты на
доске до начала уровня.

Kamu dapat mengocok
papan dua kali sebelum
memulai level.

スタートする前に、ボードを
2回シャッフルできます

在游戏开始前,你有两次
机会随机排列水果板面。

Podés mezclar el tablero
2 veces antes de
comenzar el nivel.

Puedes reorganizar el
tablero dos veces antes
de iniciar el nivel.

Statistics

Statistieken

Statistiques

Statistik

Estadísticas

Estatísticas

Statistiche

Statystyki

Статистика

レコード

统计

Turns

Turns

Zetten

Tours

Züge

Giros

Turnos

Turni

Drag

Ruchy

Ходов

Giliran

ターン数

次数

Shuffle

Husselen

Mélanger

Mischen

Revolver

Embaralhar

Baralhar

Mescola

Blanda

Przetasuj

Перемешать

Kocok

シャッフル

随机排列

Mezclar

Reorganizar

Start Here

Start Here

Begin hier

Commencer ici

Hier beginnen

Comenzar aquí

Comece aqui

Começa aqui

Inizia da qui

Börja här

Zacznij tutaj

Начинай
отсюда

Mulai Di Sini

ここからスタート

从此处开始

Empezá acá

Inicia aquí

Game Win

Game Start

<p align="center"><font face="SimSun" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"></font></p><p align="center"></p>

<p align="center"><font face="SimSun" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"></font></p><p align="center"></p>

How To Play

Resume

Game Menu

PortuguêsBR

Nederlands

Deutsch

Español

Français

English

Italiano

Bahasa melayu

Philipines

Polski

Português

Русский

Svenska

Türkçe

English (UK)

English (US)

Bahasa

BR

NL

CN

DE

ES

FR

IN

IT

JP

MY

PH

PL

PT

RU

SE

TR

UK

US

ID

AR

MX

ARG

<p align="center"><font face="MS PMincho" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"><sbr /></font></p>

<p align="center"><font face="MS PMincho" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"></font></p>

<p align="center"><font face="MS PMincho" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"></font></p><p align="center"></p>

<p align="center"><font face="MS PMincho" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"></font></p>

GAME OVER

FIN DEL JUEGO

ACABOU

KONIEC GRY

КОНЕЦ ИГРЫ

GAME TAMAT

ゲームオーバー

游戏结束

FIN DE JUEGO

000000000

Congratulations!

Gefeliciteerd!

Félicitations !

Glückwunsch!

¡Enhorabuena!

Parabéns!

Congratulazioni!

Gratulerar!

Gratulacje!

Поздравляем!

Selamat!

おめでとうございます!

恭喜!

¡Felicitaciones!

¡Felicidades!

Check the number of remaining
turns here—unused turns from the
previous level carry over!

Here you can see how many turns
you have left, and extra turns
carried over from the previous level.

Hier zie je hoeveel zetten je nog
hebt. Ongebruikte zetten uit het
vorige level worden meegenomen!

Viens voir ici le nombre de tours
restants—les tours qui n'ont pas
été utilisés au niveau précédent
y sont reportés !

Hier siehst du die dir verbleibende
Zugzahl – unverbrauchte Züge aus
dem letzten Level werden
übernommen!

Consulta aquí el número de giros
restantes. ¡Los giros sin usar del
anterior nivel se acumulan!

Aqui você pode conferir os turnos
restantes. Os turnos restantes
acumulam na próxima fase.

Aqui podes ver os turnos que
faltam. Os turnos que sobrarem
acumulam no próximo nível.

Questi sono i turni rimanenti: quelli
avanzati dal livello precedente
verranno mantenuti!

Här ser du hur många drag du har
kvar. Ej använda drag förs över till
nästa nivå!

Sprawdź tu liczbę pozostałych
ruchów – niewykorzystane ruchy z
poprzedniego poziomu przechodzą
na kolejny poziom!

Здесь показан твой запас ходов.
Неиспользованные ходы
прошлых уровней добавляются
сюда!

Cek jumlah giliran yang tersisa di
sini – giliran yang tidak digunakan
dari level sebelumnya dibawa ke
level berikutnya!

残りターン数をここでチェック。前のレ
ベルで使用しなかったターン数は、
キャリーオーバーされます!

在此查看剩余的次数——上一等级
没有用完的次数可继续使用!

Mirá el número de turnos restantes
acá. ¡Los turnos sin usar de otros
niveles se suman!

¡Aquí comprueba el número de
turnos restantes - los turnos sin
usar del nivel anterior son
transferidos!

+

10000000

Difficult_Select

Selected_Difficult:

<p align="center"><font face="Times New Roman" size="12" color="#000000" letterSpacing="0.000000" kerning="1">easy</font></p>

EASY

NORMAL

HARD

BACK

Resume

Continue

Doorgaan

Reprendre

Weiterspielen

Reanudar

Continuar

Riprendi

Återgå

Kontynuuj

Продолжить

Lanjutkan Lagi

再開する

继续

0

Level

Level

Niveau

Nivel

Fase

Nível

Livello

Nivå

Poziom

Уровень

レベル

等级

10

28

Score

Punkte

Puntuación

Pontuação

Punteggio

Poäng

Wynik

Счет

Skor

スコア

得分

Puntaje

localization

Play Again

Opnieuw spelen

Rejouer

Nochmal spielen

Jugar otra vez

Jogar de novo

Jogar outra vez

Rigioca

Spela igen

Zagraj ponownie

Сначала

Main Lagi

もう1度プレイする

再玩一次

Jugar de nuevo

Jugar nuevamente

000000000

Extra Turns

Extra zetten

Tours
supplémentaires

Extrazüge

Giros extra

Turnos Extra

Turni extra

Extra drag

Dodatkowe
ruchy

Доп. ходов

Giliran
Tambahan

追加ターン数

额外次数

Turnos extra

No Turns Left!

No Turns Left!

Geen zetten meer!

Plus aucun tour
restant !

Keine Züge
mehr!

¡No quedan
giros!

Não há mais
turnos!

Não há mais
turnos!

Turni esauriti!

Inga drag kvar!

Zabrakło ci
ruchów!

Нет ходов!

Tidak Ada
Giliran Tersisa!

ターン数がなくなりま
した!

无可玩次数!

¡No te quedan
turnos!

¡Sin turnos!

PortuguêsBR

Nederlands

Deutsch

Español

Français

English

Italiano

Bahasa melayu

Philipines

Polski

Português

Русский

Svenska

Türkçe

English (UK)

English (US)

Bahasa

BR

NL

CN

DE

ES

FR

IN

IT

JP

MY

PH

PL

PT

RU

SE

TR

UK

US

ID

AR

MX

ARG

v1.01

11

11

+

11

Quit

Stoppen

Quitter

Beenden

Salir

Sair

Esci

Avsluta

Zakończ

Выход

Keluar

メインメニュー

退出

<p align="center"><font face="Times New Roman" size="40" color="#000033" letterSpacing="0.000000" kerning="1">Credit</font></p>

Level LOST

Level_Select

Next Level :

111111

levels

how to play

ActionScript [AS3]

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

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:363 1172 1341 1372
Symbol 3 GraphicUsed by:22
Symbol 4 GraphicUsed by:22
Symbol 5 GraphicUsed by:22
Symbol 6 GraphicUsed by:22
Symbol 7 GraphicUsed by:22
Symbol 8 GraphicUsed by:22
Symbol 9 GraphicUsed by:22
Symbol 10 GraphicUsed by:22
Symbol 11 GraphicUsed by:22
Symbol 12 GraphicUsed by:22
Symbol 13 GraphicUsed by:22
Symbol 14 GraphicUsed by:22
Symbol 15 GraphicUsed by:22
Symbol 16 GraphicUsed by:22
Symbol 17 GraphicUsed by:22
Symbol 18 GraphicUsed by:22
Symbol 19 GraphicUsed by:22
Symbol 20 GraphicUsed by:22
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {mainlogo} [mainlogo]Uses:3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21Used by:363 1341
Symbol 23 GraphicUsed by:28
Symbol 24 ShapeTweeningUsed by:28
Symbol 25 GraphicUsed by:28
Symbol 26 GraphicUsed by:28
Symbol 27 GraphicUsed by:28 1333 1337
Symbol 28 MovieClipUses:23 24 25 26 27Used by:363
Symbol 29 FontUsed by:30 31 508 509 510 511 512 513 514 515 516 517 518 520 522 525 526 549 550 551 552 553 554 555 556 557 558 559 561 562 564 574 575 576 577 578 579 580 581 582 583 584 585 587 588 590 591 617 620 621 622 623 624 625 626 627 628 629 630 631 633 634 635 636 637 648 649 650 651 652 653 654 655 656 657 659 663 664 665 666 667 668 669 670 671 672 673 687 688 689 690 691 692 693 694 695 696 697 701 702 703 704 705 706 707 708 709 710 711 715 716 717 718 719 720 721 722 723 724 725 726 727 728 730 731 738 739 740 741 742 743 744 745 748 755 756 757 758 759 760 761 762 763 764 765 766 767 769 770 773 774 775 776 777 778 779 780 781 782 783 784 785 786 788 790 791 792 793 794 795 796 797 798 799 800 801 802 803 805 808 809 810 811 812 813 814 815 816 817 818 822 823 824 825 826 827 828 829 830 831 832 833 836 838 839 840 841 842 843 844 845 846 847 848 849 851 852 854 855 858 859 860 861 862 863 864 865 866 870 871 872 873 874 875 876 877 878 879 880 882 887 888 889 890 891 892 893 894 895 896 897 898 901 902 909 910 911 912 913 914 915 916 917 918 919 920 922 925 926 1044 1045 1046 1047 1048 1050 1053 1059 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1076 1077 1079 1080 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1100 1101 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1133 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1162 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1199 1200 1204 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1217 1220 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1249 1250 1252 1253 1342 1343 1344 1345 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363
Symbol 30 EditableTextUses:29Used by:363
Symbol 31 TextUses:29Used by:363
Symbol 32 FontUsed by:33
Symbol 33 TextUses:32Used by:34
Symbol 34 MovieClipUses:33Used by:363 1064 1205 1341
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {hyves_games} [hyves_games]Uses:35Used by:362
Symbol 37 GraphicUsed by:42
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:42
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42 55 59 63 67 71 75 77 81 83 87 91 95 97 99 101 125 127 129 131 133 135 137 139 141 143 145 147 149 153 157 163 358 368 379 383 387 391 395 399 401 405 407 411 415 419 421 445 447 449 451 453 455 457 459 461 463 465 467 469 475 481 504
Symbol 42 MovieClipUses:37 39 41Used by:43
Symbol 43 MovieClipUses:42Used by:358
Symbol 44 GraphicUsed by:55
Symbol 45 GraphicUsed by:55
Symbol 46 GraphicUsed by:55
Symbol 47 GraphicUsed by:55
Symbol 48 GraphicUsed by:55
Symbol 49 GraphicUsed by:55
Symbol 50 GraphicUsed by:55
Symbol 51 GraphicUsed by:55
Symbol 52 GraphicUsed by:55
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:55 379
Symbol 55 MovieClipUses:44 45 46 47 48 49 50 51 52 54 41Used by:358
Symbol 56 GraphicUsed by:59
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClipUses:56 58 41Used by:358
Symbol 60 GraphicUsed by:63
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:63
Symbol 63 MovieClipUses:60 62 41Used by:358
Symbol 64 GraphicUsed by:67
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:67
Symbol 67 MovieClipUses:64 66 41Used by:358
Symbol 68 GraphicUsed by:71
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:71
Symbol 71 MovieClipUses:68 70 41Used by:358
Symbol 72 GraphicUsed by:75
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:75
Symbol 75 MovieClipUses:72 74 41Used by:358
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76 41Used by:358
Symbol 78 GraphicUsed by:81
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:81
Symbol 81 MovieClipUses:78 80 41Used by:358
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82 41Used by:358
Symbol 84 GraphicUsed by:87
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:87
Symbol 87 MovieClipUses:84 86 41Used by:358
Symbol 88 GraphicUsed by:91
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:91
Symbol 91 MovieClipUses:88 90 41Used by:358
Symbol 92 GraphicUsed by:95
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:95
Symbol 95 MovieClipUses:92 94 41Used by:358
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96 41Used by:358 504
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98 41Used by:358
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100 41Used by:358 504
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:358
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:358
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:358
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108Used by:358
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:358
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:358
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:358
Symbol 116 GraphicUsed by:117
Symbol 117 MovieClipUses:116Used by:358
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:358
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:358
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:358
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124 41Used by:358
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126 41Used by:358
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128 41Used by:358
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130 41Used by:358
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:132 41Used by:358
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134 41Used by:358
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136 41Used by:358
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138 41Used by:358
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140 41Used by:358
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142 41Used by:358
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144 41Used by:358
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146 41Used by:358
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:148 41Used by:358
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:358
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:152 41Used by:358 504
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:358
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:156 41Used by:358
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:358
Symbol 160 GraphicUsed by:163
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClipUses:161Used by:163
Symbol 163 MovieClipUses:160 162 41Used by:358
Symbol 164 GraphicUsed by:166 169 176 178 183 221 224 246 248 253 255 259 293 296 311 339 342 346 351
Symbol 165 GraphicUsed by:166 246
Symbol 166 MovieClipUses:164 165Used by:167
Symbol 167 MovieClipUses:166Used by:169
Symbol 168 GraphicUsed by:169 248
Symbol 169 MovieClipUses:164 167 168Used by:237
Symbol 170 GraphicUsed by:172 250 307
Symbol 171 GraphicUsed by:172
Symbol 172 MovieClipUses:170 171Used by:237
Symbol 173 GraphicUsed by:175 252
Symbol 174 GraphicUsed by:175
Symbol 175 MovieClipUses:173 174Used by:176
Symbol 176 MovieClipUses:164 175Used by:177
Symbol 177 MovieClipUses:176Used by:178
Symbol 178 MovieClipUses:164 177Used by:237
Symbol 179 GraphicUsed by:181 257 309
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:179 180Used by:237
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:164 182Used by:237
Symbol 184 GraphicUsed by:186
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:184 185Used by:237
Symbol 187 GraphicUsed by:189
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:187 188Used by:237
Symbol 190 GraphicUsed by:192
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:190 191Used by:237
Symbol 193 GraphicUsed by:195
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:193 194Used by:237
Symbol 196 GraphicUsed by:198
Symbol 197 GraphicUsed by:198 272
Symbol 198 MovieClipUses:196 197Used by:237
Symbol 199 GraphicUsed by:201
Symbol 200 GraphicUsed by:201 270
Symbol 201 MovieClipUses:199 200Used by:237
Symbol 202 GraphicUsed by:204 277
Symbol 203 GraphicUsed by:204
Symbol 204 MovieClipUses:202 203Used by:237 355
Symbol 205 GraphicUsed by:207
Symbol 206 GraphicUsed by:207
Symbol 207 MovieClipUses:205 206Used by:237
Symbol 208 GraphicUsed by:210
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClipUses:208 209Used by:237
Symbol 211 GraphicUsed by:213 285 333
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClipUses:211 212Used by:237
Symbol 214 GraphicUsed by:216
Symbol 215 GraphicUsed by:216 335
Symbol 216 MovieClipUses:214 215Used by:237
Symbol 217 GraphicUsed by:219 337
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:217 218Used by:237
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:164 220Used by:222
Symbol 222 MovieClipUses:221Used by:224
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:164 222 223Used by:237
Symbol 225 GraphicUsed by:227 298 344
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:225 226Used by:237
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 MovieClipUses:228 229Used by:237
Symbol 231 GraphicUsed by:233
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:231 232Used by:237
Symbol 234 GraphicUsed by:236
Symbol 235 GraphicUsed by:236
Symbol 236 MovieClipUses:234 235Used by:237
Symbol 237 MovieClipUses:169 172 178 181 183 186 189 192 195 198 201 204 207 210 213 216 219 224 227 230 233 236Used by:358
Symbol 238 GraphicUsed by:239
Symbol 239 MovieClipUses:238Used by:358
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:240Used by:358
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:242Used by:358
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClipUses:244Used by:358
Symbol 246 MovieClipUses:164 165Used by:247
Symbol 247 MovieClipUses:246Used by:248
Symbol 248 MovieClipUses:164 247 168Used by:305 355
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClipUses:170 249Used by:305
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClipUses:173 251Used by:253
Symbol 253 MovieClipUses:164 252Used by:254
Symbol 254 MovieClipUses:253Used by:255
Symbol 255 MovieClipUses:164 254Used by:305 355
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClipUses:179 256Used by:305
Symbol 258 GraphicUsed by:259
Symbol 259 MovieClipUses:164 258Used by:305
Symbol 260 GraphicUsed by:262
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClipUses:260 261Used by:305
Symbol 263 GraphicUsed by:265 316
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:263 264Used by:305
Symbol 266 GraphicUsed by:268 318
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:266 267Used by:305
Symbol 269 GraphicUsed by:270 320
Symbol 270 MovieClipUses:269 200Used by:305
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271 197Used by:305
Symbol 273 GraphicUsed by:275
Symbol 274 GraphicUsed by:275
Symbol 275 MovieClipUses:273 274Used by:305
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:202 276Used by:305
Symbol 278 GraphicUsed by:280 328
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:278 279Used by:305
Symbol 281 GraphicUsed by:283
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:281 282Used by:305
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:211 284Used by:305
Symbol 286 GraphicUsed by:288
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:286 287Used by:305
Symbol 289 GraphicUsed by:291
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:289 290Used by:305
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClipUses:164 292Used by:294
Symbol 294 MovieClipUses:293Used by:296
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:164 294 295Used by:305
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:225 297Used by:305
Symbol 299 GraphicUsed by:301
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClipUses:299 300Used by:305
Symbol 302 GraphicUsed by:304
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:302 303Used by:305
Symbol 305 MovieClipUses:248 250 255 257 259 262 265 268 270 272 275 277 280 283 285 288 291 296 298 301 304Used by:358
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:170 306Used by:355
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClipUses:179 308Used by:355
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClipUses:164 310Used by:355
Symbol 312 GraphicUsed by:314
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:312 313Used by:355
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClipUses:263 315Used by:355
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:266 317Used by:355
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClipUses:269 319Used by:355
Symbol 321 GraphicUsed by:323
Symbol 322 GraphicUsed by:323
Symbol 323 MovieClipUses:321 322Used by:355
Symbol 324 GraphicUsed by:326
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClipUses:324 325Used by:355
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClipUses:278 327Used by:355
Symbol 329 GraphicUsed by:331
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClipUses:329 330Used by:355
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClipUses:211 332Used by:355
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClipUses:334 215Used by:355
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:217 336Used by:355
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClipUses:164 338Used by:340
Symbol 340 MovieClipUses:339Used by:342
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClipUses:164 340 341Used by:355
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClipUses:225 343Used by:355
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClipUses:164 345Used by:355
Symbol 347 GraphicUsed by:349
Symbol 348 GraphicUsed by:349
Symbol 349 MovieClipUses:347 348Used by:355
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:164 350Used by:355
Symbol 352 GraphicUsed by:354
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClipUses:352 353Used by:355
Symbol 355 MovieClipUses:248 307 255 309 311 314 316 318 320 323 326 204 328 331 333 335 337 342 344 346 349 351 354Used by:358
Symbol 356 GraphicUsed by:357
Symbol 357 MovieClipUses:356Used by:358
Symbol 358 MovieClip {Logo} [Logo]Uses:43 41 55 59 63 67 71 75 77 81 83 87 91 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 163 237 239 241 243 245 305 355 357Used by:362 1058 1371
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClipUses:359Used by:361
Symbol 361 MovieClip {PowerBy} [PowerBy]Uses:360Used by:362
Symbol 362 MovieClip {HyvesLoading} [HyvesLoading]Uses:36 358 361Used by:363
Symbol 363 MovieClip {UI_loading} [UI_loading]Uses:2 22 28 30 31 34 362Used by:1377
Symbol 364 GraphicUsed by:507
Symbol 365 GraphicUsed by:368
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:366Used by:368
Symbol 368 MovieClipUses:365 367 41Used by:369
Symbol 369 MovieClipUses:368Used by:504
Symbol 370 GraphicUsed by:379
Symbol 371 GraphicUsed by:379
Symbol 372 GraphicUsed by:379
Symbol 373 GraphicUsed by:379 488
Symbol 374 GraphicUsed by:379
Symbol 375 GraphicUsed by:379
Symbol 376 GraphicUsed by:379
Symbol 377 GraphicUsed by:379
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClipUses:370 371 372 373 374 375 376 377 378 54 41Used by:504
Symbol 380 GraphicUsed by:383
Symbol 381 GraphicUsed by:382
Symbol 382 MovieClipUses:381Used by:383
Symbol 383 MovieClipUses:380 382 41Used by:504
Symbol 384 GraphicUsed by:387
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:387
Symbol 387 MovieClipUses:384 386 41Used by:504
Symbol 388 GraphicUsed by:391
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:389Used by:391
Symbol 391 MovieClipUses:388 390 41Used by:504
Symbol 392 GraphicUsed by:395
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:395
Symbol 395 MovieClipUses:392 394 41Used by:504
Symbol 396 GraphicUsed by:399
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:399
Symbol 399 MovieClipUses:396 398 41Used by:504
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClipUses:400 41Used by:504
Symbol 402 GraphicUsed by:405
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:403Used by:405
Symbol 405 MovieClipUses:402 404 41Used by:504
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClipUses:406 41Used by:504
Symbol 408 GraphicUsed by:411
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:409Used by:411
Symbol 411 MovieClipUses:408 410 41Used by:504
Symbol 412 GraphicUsed by:415
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:413Used by:415
Symbol 415 MovieClipUses:412 414 41Used by:504
Symbol 416 GraphicUsed by:419
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:417Used by:419
Symbol 419 MovieClipUses:416 418 41Used by:504
Symbol 420 GraphicUsed by:421
Symbol 421 MovieClipUses:420 41Used by:504
Symbol 422 GraphicUsed by:423
Symbol 423 MovieClipUses:422Used by:504
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClipUses:424Used by:504
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426Used by:504
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:504
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClipUses:430Used by:504
Symbol 432 GraphicUsed by:433
Symbol 433 MovieClipUses:432Used by:504
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClipUses:434Used by:504
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:504
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:504
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:440Used by:504
Symbol 442 GraphicUsed by:443
Symbol 443 MovieClipUses:442Used by:504
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClipUses:444 41Used by:504
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446 41Used by:504
Symbol 448 GraphicUsed by:449
Symbol 449 MovieClipUses:448 41Used by:504
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClipUses:450 41Used by:504
Symbol 452 GraphicUsed by:453
Symbol 453 MovieClipUses:452 41Used by:504
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClipUses:454 41Used by:504
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClipUses:456 41Used by:504
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClipUses:458 41Used by:504
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:460 41Used by:504
Symbol 462 GraphicUsed by:463
Symbol 463 MovieClipUses:462 41Used by:504
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464 41Used by:504
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:466 41Used by:504
Symbol 468 GraphicUsed by:469
Symbol 469 MovieClipUses:468 41Used by:504
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClipUses:470Used by:504
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClipUses:472Used by:504
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:474 41Used by:504
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:504
Symbol 478 GraphicUsed by:481
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClipUses:479Used by:481
Symbol 481 MovieClipUses:478 480 41Used by:504
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:482Used by:489
Symbol 484 GraphicUsed by:489
Symbol 485 GraphicUsed by:488
Symbol 486 GraphicUsed by:487
Symbol 487 MovieClipUses:486Used by:488
Symbol 488 MovieClipUses:485 487 373Used by:489 503
Symbol 489 MovieClipUses:483 484 488Used by:490
Symbol 490 MovieClipUses:489Used by:504
Symbol 491 GraphicUsed by:492
Symbol 492 MovieClipUses:491Used by:504
Symbol 493 GraphicUsed by:494
Symbol 494 MovieClipUses:493Used by:504
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClipUses:495Used by:504
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:504
Symbol 499 GraphicUsed by:502
Symbol 500 GraphicUsed by:502
Symbol 501 GraphicUsed by:502
Symbol 502 MovieClipUses:499 500 501Used by:503
Symbol 503 MovieClipUses:502 488Used by:504
Symbol 504 MovieClipUses:369 41 379 383 387 391 395 399 401 405 407 411 415 419 97 421 101 423 425 427 429 431 433 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 465 467 469 471 153 473 475 477 481 490 492 494 496 498 503Used by:507
Symbol 505 FontUsed by:506
Symbol 506 TextUses:505Used by:507
Symbol 507 MovieClip {MoreGamesLogo} [MoreGamesLogo]Uses:364 504 506Used by:1031
Symbol 508 TextUses:29Used by:527
Symbol 509 TextUses:29Used by:527
Symbol 510 TextUses:29Used by:527
Symbol 511 TextUses:29Used by:527
Symbol 512 TextUses:29Used by:527
Symbol 513 TextUses:29Used by:527
Symbol 514 TextUses:29Used by:527
Symbol 515 TextUses:29Used by:527
Symbol 516 TextUses:29Used by:527
Symbol 517 TextUses:29Used by:527
Symbol 518 TextUses:29Used by:527
Symbol 519 TextUsed by:527
Symbol 520 TextUses:29Used by:527
Symbol 521 FontUsed by:522 524 562 563 588 589 634 635 660 661 674 675 712 713 728 729 746 747 770 771 786 787 803 804 819 820 834 835 852 853 867 883 884 899 900 923 924 1051 1052 1077 1078 1095 1096 1130 1146 1147 1160 1161 1197 1198 1218 1219 1250 1251 1364 1365
Symbol 522 TextUses:521 29Used by:527
Symbol 523 FontUsed by:524 563 589 635 661 698 699 713 729 771 787 804 820 835 853 868 924 937 938 1052 1096 1131 1147 1219
Symbol 524 TextUses:521 523Used by:527
Symbol 525 TextUses:29Used by:527
Symbol 526 TextUses:29Used by:527
Symbol 527 MovieClip {txt_Game_complete} [txt_Game_complete]Uses:508 509 510 511 512 513 514 515 516 517 518 519 520 522 524 525 526Used by:1205
Symbol 528 GraphicUsed by:534 609 686 931 1031 1117 1374 1376 1383 1385
Symbol 529 FontUsed by:530 532 569 596 597 599 601 603 604 605 606 607 608 683 684 930 934 940 942 944 1106 1107 1108 1109 1111 1113 1115 1373 1375 1378 1379 1380 1381 1384
Symbol 530 TextUses:529Used by:534
Symbol 531 GraphicUsed by:533 598 600 602 685 935 939 941 943 1030 1110 1112 1114 1116 1382
Symbol 532 TextUses:529Used by:533
Symbol 533 MovieClipUses:531 532Used by:534 931 1117 1374 1376 1383 1385
Symbol 534 MovieClip {GameLost} [GameLost]Uses:528 530 533
Symbol 535 Sound {other_click} [other_click]
Symbol 536 GraphicUsed by:537
Symbol 537 MovieClipUses:536Used by:548 1105
Symbol 538 GraphicUsed by:539
Symbol 539 MovieClipUses:538Used by:548 929
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:540Used by:548 735
Symbol 542 GraphicUsed by:543
Symbol 543 MovieClipUses:542Used by:548 1166
Symbol 544 GraphicUsed by:545
Symbol 545 MovieClipUses:544Used by:548 928
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClipUses:546Used by:548 1165
Symbol 548 MovieClip {export_fla.mainmenu_199} [export_fla.mainmenu_199]Uses:537 539 541 543 545 547Used by:1259
Symbol 549 TextUses:29Used by:565
Symbol 550 TextUses:29Used by:565
Symbol 551 TextUses:29Used by:565
Symbol 552 TextUses:29Used by:565
Symbol 553 TextUses:29Used by:565
Symbol 554 TextUses:29Used by:565
Symbol 555 TextUses:29Used by:565
Symbol 556 TextUses:29Used by:565
Symbol 557 TextUses:29Used by:565
Symbol 558 TextUses:29Used by:565
Symbol 559 TextUses:29Used by:565
Symbol 560 TextUsed by:565
Symbol 561 TextUses:29Used by:565
Symbol 562 TextUses:521 29Used by:565
Symbol 563 TextUses:523 521Used by:565
Symbol 564 TextUses:29Used by:565
Symbol 565 MovieClip {Your_total_score} [Your_total_score]Uses:549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564Used by:1064 1205
Symbol 566 GraphicUsed by:573
Symbol 567 FontUsed by:568 569 1373
Symbol 568 TextUses:567Used by:573
Symbol 569 EditableTextUses:529 567 1173Used by:573
Symbol 570 GraphicUsed by:572
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:570 571Used by:573
Symbol 573 MovieClip {Mc_UiLoading} [Mc_UiLoading]Uses:566 568 569 572
Symbol 574 TextUses:29Used by:592
Symbol 575 TextUses:29Used by:592
Symbol 576 TextUses:29Used by:592
Symbol 577 TextUses:29Used by:592
Symbol 578 TextUses:29Used by:592
Symbol 579 TextUses:29Used by:592
Symbol 580 TextUses:29Used by:592
Symbol 581 TextUses:29Used by:592
Symbol 582 TextUses:29Used by:592
Symbol 583 TextUses:29Used by:592
Symbol 584 TextUses:29Used by:592
Symbol 585 TextUses:29Used by:592
Symbol 586 TextUsed by:592
Symbol 587 TextUses:29Used by:592
Symbol 588 TextUses:521 29Used by:592
Symbol 589 TextUses:521 523Used by:592
Symbol 590 TextUses:29Used by:592
Symbol 591 TextUses:29Used by:592
Symbol 592 MovieClip {txt_Level_up} [txt_Level_up]Uses:574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591Used by:593
Symbol 593 MovieClip {export_fla.animation_Levelup_17} [export_fla.animation_Levelup_17]Uses:592Used by:1372
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClip {export_fla.empty_189} [export_fla.empty_189]Uses:594Used by:1372
Symbol 596 TextUses:529Used by:609
Symbol 597 TextUses:529Used by:598
Symbol 598 MovieClipUses:531 597Used by:609
Symbol 599 TextUses:529Used by:600
Symbol 600 MovieClipUses:531 599Used by:609
Symbol 601 TextUses:529Used by:602
Symbol 602 MovieClipUses:531 601Used by:609
Symbol 603 TextUses:529Used by:609
Symbol 604 TextUses:529Used by:609
Symbol 605 TextUses:529Used by:609
Symbol 606 EditableTextUses:529Used by:609
Symbol 607 EditableTextUses:529Used by:609
Symbol 608 EditableTextUses:529Used by:609
Symbol 609 MovieClip {gameScreen} [gameScreen]Uses:528 596 598 600 602 603 604 605 606 607 608
Symbol 610 GraphicUsed by:611
Symbol 611 MovieClip {Ball_4} [Ball_4]Uses:610Used by:1377
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClip {Ball_5} [Ball_5]Uses:612Used by:1377
Symbol 614 GraphicUsed by:615
Symbol 615 MovieClip {Ball_6} [Ball_6]Uses:614Used by:1377
Symbol 616 GraphicUsed by:619
Symbol 617 EditableTextUses:29Used by:618
Symbol 618 MovieClipUses:617Used by:619
Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]Uses:616 618Used by:1347
Symbol 620 TextUses:29Used by:638
Symbol 621 TextUses:29Used by:638
Symbol 622 TextUses:29Used by:638
Symbol 623 TextUses:29Used by:638
Symbol 624 TextUses:29Used by:638
Symbol 625 TextUses:29Used by:638
Symbol 626 TextUses:29Used by:638
Symbol 627 TextUses:29Used by:638
Symbol 628 TextUses:29Used by:638
Symbol 629 TextUses:29Used by:638
Symbol 630 TextUses:29Used by:638
Symbol 631 TextUses:29Used by:638
Symbol 632 TextUsed by:638 1099
Symbol 633 TextUses:29Used by:638
Symbol 634 TextUses:521 29Used by:638
Symbol 635 TextUses:521 523 29Used by:638
Symbol 636 TextUses:29Used by:638
Symbol 637 TextUses:29Used by:638
Symbol 638 MovieClip {txt_Theabjectofthegameistochangeallofthesquaresonth} [txt_Theabjectofthegameistochangeallofthesquaresonth]Uses:620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637Used by:1172
Symbol 639 GraphicUsed by:640
Symbol 640 MovieClip {Ball_1} [Ball_1]Uses:639Used by:1377
Symbol 641 GraphicUsed by:642
Symbol 642 MovieClip {Ball_2} [Ball_2]Uses:641Used by:1377
Symbol 643 GraphicUsed by:644
Symbol 644 MovieClipUses:643Used by:645 1182 1183 1184
Symbol 645 MovieClipUses:644Used by:646 1205
Symbol 646 MovieClip {export_fla.Timeline_14} [export_fla.Timeline_14]Uses:645Used by:1372
Symbol 647 GraphicUsed by:680
Symbol 648 TextUses:29Used by:662 1256
Symbol 649 TextUses:29Used by:662 1256
Symbol 650 TextUses:29Used by:662 1256
Symbol 651 TextUses:29Used by:662 1256
Symbol 652 TextUses:29Used by:662 1256
Symbol 653 TextUses:29Used by:662 1256
Symbol 654 TextUses:29Used by:662 1256
Symbol 655 TextUses:29Used by:662 1256
Symbol 656 TextUses:29Used by:662 1256
Symbol 657 TextUses:29Used by:662 1256
Symbol 658 TextUsed by:662 676 700 714 732 749 753 821 837 869 903 1132 1201 1256 1366
Symbol 659 TextUses:29Used by:662 1256
Symbol 660 TextUses:521Used by:662 1256
Symbol 661 TextUses:523 521Used by:662 1256
Symbol 662 MovieClip {txt_inhelp_play} [txt_inhelp_play]Uses:648 649 650 651 652 653 654 655 656 657 658 659 660 661Used by:677
Symbol 663 TextUses:29Used by:676 753
Symbol 664 TextUses:29Used by:676 753
Symbol 665 TextUses:29Used by:676 753
Symbol 666 TextUses:29Used by:676 753
Symbol 667 TextUses:29Used by:676 753
Symbol 668 TextUses:29Used by:676 753
Symbol 669 TextUses:29Used by:676 753
Symbol 670 TextUses:29Used by:676 753
Symbol 671 TextUses:29Used by:676 753
Symbol 672 TextUses:29Used by:676 753
Symbol 673 TextUses:29Used by:676 753
Symbol 674 TextUses:521Used by:676 753
Symbol 675 TextUses:521Used by:676 753
Symbol 676 MovieClip {txt_inhelpBack} [txt_inhelpBack]Uses:663 664 665 666 667 668 669 670 671 672 658 673 674 675Used by:677
Symbol 677 MovieClip {txt_start} [txt_start]Uses:662 676Used by:680
Symbol 678 GraphicUsed by:680
Symbol 679 GraphicUsed by:680
Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232]Uses:647 677 678 679Used by:1172
Symbol 681 GraphicUsed by:682
Symbol 682 MovieClip {Ball_3} [Ball_3]Uses:681Used by:1377
Symbol 683 TextUses:529Used by:686
Symbol 684 TextUses:529Used by:685
Symbol 685 MovieClipUses:531 684Used by:686
Symbol 686 MovieClip {LevelWin} [LevelWin]Uses:528 683 685
Symbol 687 TextUses:29Used by:700
Symbol 688 TextUses:29Used by:700
Symbol 689 TextUses:29Used by:700
Symbol 690 TextUses:29Used by:700
Symbol 691 TextUses:29Used by:700
Symbol 692 TextUses:29Used by:700
Symbol 693 TextUses:29Used by:700
Symbol 694 TextUses:29Used by:700
Symbol 695 TextUses:29Used by:700
Symbol 696 TextUses:29Used by:700
Symbol 697 TextUses:29Used by:700
Symbol 698 TextUses:523Used by:700
Symbol 699 TextUses:523Used by:700
Symbol 700 MovieClip {txt_Mainmenu} [txt_Mainmenu]Uses:687 688 689 690 691 692 693 694 695 696 658 697 698 699Used by:1043
Symbol 701 TextUses:29Used by:714
Symbol 702 TextUses:29Used by:714
Symbol 703 TextUses:29Used by:714
Symbol 704 TextUses:29Used by:714
Symbol 705 TextUses:29Used by:714
Symbol 706 TextUses:29Used by:714
Symbol 707 TextUses:29Used by:714
Symbol 708 TextUses:29Used by:714
Symbol 709 TextUses:29Used by:714
Symbol 710 TextUses:29Used by:714
Symbol 711 TextUses:29Used by:714
Symbol 712 TextUses:521Used by:714
Symbol 713 TextUses:521 523Used by:714
Symbol 714 MovieClip {txt_more_game} [txt_more_game]Uses:701 702 703 704 705 706 707 708 709 710 658 711 712 713Used by:733
Symbol 715 TextUses:29Used by:732
Symbol 716 TextUses:29Used by:732
Symbol 717 TextUses:29Used by:732
Symbol 718 TextUses:29Used by:732
Symbol 719 TextUses:29Used by:732
Symbol 720 TextUses:29Used by:732
Symbol 721 TextUses:29Used by:732
Symbol 722 TextUses:29Used by:732
Symbol 723 TextUses:29Used by:732
Symbol 724 TextUses:29Used by:732
Symbol 725 TextUses:29Used by:732
Symbol 726 TextUses:29Used by:732
Symbol 727 TextUses:29Used by:732
Symbol 728 TextUses:521 29Used by:732
Symbol 729 TextUses:523 521Used by:732
Symbol 730 TextUses:29Used by:732
Symbol 731 TextUses:29Used by:732
Symbol 732 MovieClip {txt_sitelock} [txt_sitelock]Uses:715 716 717 718 719 720 721 722 723 724 725 726 658 727 728 729 730 731Used by:733
Symbol 733 MovieClip {export_fla.txt_moregames_202} [export_fla.txt_moregames_202]Uses:714 732Used by:1058
Symbol 734 GraphicUsed by:735 928 929 1105 1165 1166
Symbol 735 MovieClip {export_fla.icon__29} [export_fla.icon__29]Uses:734 541Used by:1172 1372
Symbol 736 GraphicUsed by:807
Symbol 737 GraphicUsed by:752 754
Symbol 738 TextUses:29Used by:749
Symbol 739 TextUses:29Used by:749
Symbol 740 TextUses:29Used by:749
Symbol 741 TextUses:29Used by:749
Symbol 742 TextUses:29Used by:749
Symbol 743 TextUses:29Used by:749
Symbol 744 TextUses:29Used by:749
Symbol 745 TextUses:29Used by:749
Symbol 746 TextUses:521Used by:749
Symbol 747 TextUses:521Used by:749
Symbol 748 TextUses:29Used by:749
Symbol 749 MovieClip {txt_Reset} [txt_Reset]Uses:738 739 740 741 742 743 744 658 745 746 747 748Used by:752
Symbol 750 GraphicUsed by:752 754
Symbol 751 GraphicUsed by:752 754
Symbol 752 MovieClipUses:737 749 750 751Used by:807
Symbol 753 MovieClip {txt_back} [txt_back]Uses:663 664 665 666 667 668 669 670 671 672 658 673 674 675Used by:754
Symbol 754 MovieClipUses:737 753 750 751Used by:807
Symbol 755 EditableTextUses:29Used by:807
Symbol 756 TextUses:29Used by:772
Symbol 757 TextUses:29Used by:772
Symbol 758 TextUses:29Used by:772
Symbol 759 TextUses:29Used by:772
Symbol 760 TextUses:29Used by:772
Symbol 761 TextUses:29Used by:772
Symbol 762 TextUses:29Used by:772
Symbol 763 TextUses:29Used by:772
Symbol 764 TextUses:29Used by:772
Symbol 765 TextUses:29Used by:772
Symbol 766 TextUses:29Used by:772
Symbol 767 TextUses:29Used by:772
Symbol 768 TextUsed by:772 789 806
Symbol 769 TextUses:29Used by:772
Symbol 770 TextUses:521 29Used by:772
Symbol 771 TextUses:521 523Used by:772
Symbol 772 MovieClip {txt_Levelclear} [txt_Levelclear]Uses:756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771Used by:807
Symbol 773 TextUses:29Used by:789
Symbol 774 TextUses:29Used by:789
Symbol 775 TextUses:29Used by:789
Symbol 776 TextUses:29Used by:789
Symbol 777 TextUses:29Used by:789
Symbol 778 TextUses:29Used by:789
Symbol 779 TextUses:29Used by:789
Symbol 780 TextUses:29Used by:789
Symbol 781 TextUses:29Used by:789
Symbol 782 TextUses:29Used by:789
Symbol 783 TextUses:29Used by:789
Symbol 784 TextUses:29Used by:789
Symbol 785 TextUses:29Used by:789
Symbol 786 TextUses:521 29Used by:789
Symbol 787 TextUses:521 523Used by:789
Symbol 788 TextUses:29Used by:789
Symbol 789 MovieClip {txt_Levelfailed} [txt_Levelfailed]Uses:773 774 775 776 777 778 779 780 781 782 783 784 768 785 786 787 788Used by:807
Symbol 790 TextUses:29Used by:806
Symbol 791 TextUses:29Used by:806
Symbol 792 TextUses:29Used by:806
Symbol 793 TextUses:29Used by:806
Symbol 794 TextUses:29Used by:806
Symbol 795 TextUses:29Used by:806
Symbol 796 TextUses:29Used by:806
Symbol 797 TextUses:29Used by:806
Symbol 798 TextUses:29Used by:806
Symbol 799 TextUses:29Used by:806
Symbol 800 TextUses:29Used by:806
Symbol 801 TextUses:29Used by:806
Symbol 802 TextUses:29Used by:806
Symbol 803 TextUses:521 29Used by:806
Symbol 804 TextUses:521 523Used by:806
Symbol 805 TextUses:29Used by:806
Symbol 806 MovieClip {txt_Clear_percentage} [txt_Clear_percentage]Uses:790 791 792 793 794 795 796 797 798 799 800 801 768 802 803 804 805Used by:807
Symbol 807 MovieClip {UI_statis} [UI_statis]Uses:736 752 754 755 772 789 806Used by:1377
Symbol 808 TextUses:29Used by:821
Symbol 809 TextUses:29Used by:821
Symbol 810 TextUses:29Used by:821
Symbol 811 TextUses:29Used by:821
Symbol 812 TextUses:29Used by:821
Symbol 813 TextUses:29Used by:821
Symbol 814 TextUses:29Used by:821
Symbol 815 TextUses:29Used by:821
Symbol 816 TextUses:29Used by:821
Symbol 817 TextUses:29Used by:821
Symbol 818 TextUses:29Used by:821
Symbol 819 TextUses:521Used by:821
Symbol 820 TextUses:521 523Used by:821
Symbol 821 MovieClip {txt_howtoplay} [txt_howtoplay]Uses:808 809 810 811 812 813 814 815 816 817 658 818 819 820Used by:1226
Symbol 822 TextUses:29Used by:837
Symbol 823 TextUses:29Used by:837
Symbol 824 TextUses:29Used by:837
Symbol 825 TextUses:29Used by:837
Symbol 826 TextUses:29Used by:837
Symbol 827 TextUses:29Used by:837
Symbol 828 TextUses:29Used by:837
Symbol 829 TextUses:29Used by:837
Symbol 830 TextUses:29Used by:837
Symbol 831 TextUses:29Used by:837
Symbol 832 TextUses:29Used by:837
Symbol 833 TextUses:29Used by:837
Symbol 834 TextUses:521Used by:837
Symbol 835 TextUses:521 523Used by:837
Symbol 836 TextUses:29Used by:837
Symbol 837 MovieClip {txt_Tryagain} [txt_Tryagain]Uses:822 823 824 825 826 827 828 829 830 831 832 658 833 834 835 836Used by:1040
Symbol 838 TextUses:29Used by:856
Symbol 839 TextUses:29Used by:856
Symbol 840 TextUses:29Used by:856
Symbol 841 TextUses:29Used by:856
Symbol 842 TextUses:29Used by:856
Symbol 843 TextUses:29Used by:856
Symbol 844 TextUses:29Used by:856
Symbol 845 TextUses:29Used by:856
Symbol 846 TextUses:29Used by:856
Symbol 847 TextUses:29Used by:856
Symbol 848 TextUses:29Used by:856
Symbol 849 TextUses:29Used by:856
Symbol 850 TextUsed by:856
Symbol 851 TextUses:29Used by:856
Symbol 852 TextUses:521 29Used by:856
Symbol 853 TextUses:521 523Used by:856
Symbol 854 TextUses:29Used by:856
Symbol 855 TextUses:29Used by:856
Symbol 856 MovieClip {txt_Youcanshufflethesquares2timesbeforestartthelevel} [txt_Youcanshufflethesquares2timesbeforestartthelevel]Uses:838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855Used by:1172
Symbol 857 Sound {menu_press} [menu_press]
Symbol 858 TextUses:29Used by:869
Symbol 859 TextUses:29Used by:869
Symbol 860 TextUses:29Used by:869
Symbol 861 TextUses:29Used by:869
Symbol 862 TextUses:29Used by:869
Symbol 863 TextUses:29Used by:869
Symbol 864 TextUses:29Used by:869
Symbol 865 TextUses:29Used by:869
Symbol 866 TextUses:29Used by:869
Symbol 867 TextUses:521Used by:869
Symbol 868 TextUses:523Used by:869
Symbol 869 MovieClip {txt_statistica} [txt_statistica]Uses:858 859 860 861 862 863 864 865 866 658 867 868Used by:1351
Symbol 870 TextUses:29Used by:885
Symbol 871 TextUses:29Used by:885
Symbol 872 TextUses:29Used by:885
Symbol 873 TextUses:29Used by:885
Symbol 874 TextUses:29Used by:885
Symbol 875 TextUses:29Used by:885
Symbol 876 TextUses:29Used by:885
Symbol 877 TextUses:29Used by:885
Symbol 878 TextUses:29Used by:885
Symbol 879 TextUses:29Used by:885
Symbol 880 TextUses:29Used by:885
Symbol 881 TextUsed by:885 1163
Symbol 882 TextUses:29Used by:885
Symbol 883 TextUses:521Used by:885
Symbol 884 TextUses:521Used by:885
Symbol 885 MovieClip {txt_turnslef} [txt_turnslef]Uses:870 871 872 873 874 875 876 877 878 879 880 881 882 883 884Used by:1172 1372
Symbol 886 GraphicUsed by:906
Symbol 887 TextUses:29Used by:903
Symbol 888 TextUses:29Used by:903
Symbol 889 TextUses:29Used by:903
Symbol 890 TextUses:29Used by:903
Symbol 891 TextUses:29Used by:903
Symbol 892 TextUses:29Used by:903
Symbol 893 TextUses:29Used by:903
Symbol 894 TextUses:29Used by:903
Symbol 895 TextUses:29Used by:903
Symbol 896 TextUses:29Used by:903
Symbol 897 TextUses:29Used by:903
Symbol 898 TextUses:29Used by:903
Symbol 899 TextUses:521Used by:903
Symbol 900 TextUses:521Used by:903
Symbol 901 TextUses:29Used by:903
Symbol 902 TextUses:29Used by:903
Symbol 903 MovieClip {txt_Shuffle} [txt_Shuffle]Uses:887 888 889 890 891 892 893 894 895 896 897 658 898 899 900 901 902Used by:906
Symbol 904 GraphicUsed by:906
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClip {export_fla.btn_shuffle_25} [export_fla.btn_shuffle_25]Uses:886 903 904 905Used by:1172 1372
Symbol 907 Sound {fruit_lose} [fruit_lose]
Symbol 908 Sound {fruit_select} [fruit_select]
Symbol 909 TextUses:29Used by:927
Symbol 910 TextUses:29Used by:927
Symbol 911 TextUses:29Used by:927
Symbol 912 TextUses:29Used by:927
Symbol 913 TextUses:29Used by:927
Symbol 914 TextUses:29Used by:927
Symbol 915 TextUses:29Used by:927
Symbol 916 TextUses:29Used by:927
Symbol 917 TextUses:29Used by:927
Symbol 918 TextUses:29Used by:927
Symbol 919 TextUses:29Used by:927
Symbol 920 TextUses:29Used by:927
Symbol 921 TextUsed by:927
Symbol 922 TextUses:29Used by:927
Symbol 923 TextUses:521Used by:927
Symbol 924 TextUses:521 523Used by:927
Symbol 925 TextUses:29Used by:927
Symbol 926 TextUses:29Used by:927
Symbol 927 MovieClip {txt_Startfromhere} [txt_Startfromhere]Uses:909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926Used by:1172
Symbol 928 MovieClip {export_fla.icon__33} [export_fla.icon__33]Uses:734 545Used by:1172 1372
Symbol 929 MovieClip {export_fla.icon__35} [export_fla.icon__35]Uses:734 539Used by:1172 1372
Symbol 930 TextUses:529Used by:931
Symbol 931 MovieClip {GameWin} [GameWin]Uses:528 930 533
Symbol 932 Sound {fruit_game} [fruit_game]
Symbol 933 Sound {fruit_menu} [fruit_menu]
Symbol 934 TextUses:529Used by:935
Symbol 935 MovieClipUses:531 934Used by:1031
Symbol 936 FontUsed by:937 938
Symbol 937 EditableTextUses:523 936Used by:939
Symbol 938 EditableTextUses:523 936Used by:939
Symbol 939 MovieClipUses:531 937 938Used by:1031
Symbol 940 TextUses:529Used by:941
Symbol 941 MovieClipUses:531 940Used by:1031
Symbol 942 TextUses:529Used by:943
Symbol 943 MovieClipUses:531 942Used by:1031
Symbol 944 TextUses:529Used by:1031
Symbol 945 GraphicUsed by:946
Symbol 946 MovieClipUses:945Used by:1024
Symbol 947 FontUsed by:948 949 951 952 953 954 955 957 958 959 960 961 962 963 964 965 966 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1014 1016 1262 1263 1265 1266 1267 1268 1269 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1327 1329
Symbol 948 TextUses:947Used by:967
Symbol 949 TextUses:947Used by:967
Symbol 950 GraphicUsed by:967
Symbol 951 TextUses:947Used by:967
Symbol 952 TextUses:947Used by:967
Symbol 953 TextUses:947Used by:967
Symbol 954 TextUses:947Used by:967
Symbol 955 TextUses:947Used by:967
Symbol 956 GraphicUsed by:967
Symbol 957 TextUses:947Used by:967
Symbol 958 TextUses:947Used by:967
Symbol 959 TextUses:947Used by:967
Symbol 960 TextUses:947Used by:967
Symbol 961 TextUses:947Used by:967
Symbol 962 TextUses:947Used by:967
Symbol 963 TextUses:947Used by:967
Symbol 964 TextUses:947Used by:967
Symbol 965 TextUses:947Used by:967
Symbol 966 TextUses:947Used by:967
Symbol 967 MovieClipUses:948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966Used by:1024
Symbol 968 GraphicUsed by:1020 1024
Symbol 969 GraphicUsed by:991 1017
Symbol 970 GraphicUsed by:991 1017
Symbol 971 GraphicUsed by:991 1017
Symbol 972 GraphicUsed by:991 1017
Symbol 973 GraphicUsed by:991 1017
Symbol 974 GraphicUsed by:991 1017
Symbol 975 GraphicUsed by:991 1017
Symbol 976 GraphicUsed by:991 1017
Symbol 977 GraphicUsed by:991 1017
Symbol 978 GraphicUsed by:991 1017
Symbol 979 GraphicUsed by:991 1017
Symbol 980 GraphicUsed by:991 1017
Symbol 981 GraphicUsed by:991 1017
Symbol 982 GraphicUsed by:991 1017
Symbol 983 GraphicUsed by:991 1017
Symbol 984 GraphicUsed by:991 1017
Symbol 985 GraphicUsed by:991 1017
Symbol 986 GraphicUsed by:991 1017
Symbol 987 GraphicUsed by:991 1017
Symbol 988 GraphicUsed by:991 1017
Symbol 989 GraphicUsed by:991
Symbol 990 GraphicUsed by:991
Symbol 991 MovieClipUses:969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990Used by:1024
Symbol 992 GraphicUsed by:1020
Symbol 993 TextUses:947Used by:1017
Symbol 994 TextUses:947Used by:1017
Symbol 995 TextUses:947Used by:1017
Symbol 996 TextUses:947Used by:1017
Symbol 997 TextUses:947Used by:1017
Symbol 998 TextUses:947Used by:1017
Symbol 999 TextUses:947Used by:1017
Symbol 1000 TextUses:947Used by:1017
Symbol 1001 TextUses:947Used by:1017
Symbol 1002 TextUses:947Used by:1017
Symbol 1003 TextUses:947Used by:1017
Symbol 1004 TextUses:947Used by:1017
Symbol 1005 TextUses:947Used by:1017
Symbol 1006 TextUses:947Used by:1017
Symbol 1007 TextUses:947Used by:1017
Symbol 1008 TextUses:947Used by:1017
Symbol 1009 TextUses:947Used by:1017
Symbol 1010 TextUses:947Used by:1017
Symbol 1011 TextUses:947Used by:1017
Symbol 1012 TextUses:947Used by:1017
Symbol 1013 GraphicUsed by:1017
Symbol 1014 TextUses:947Used by:1017
Symbol 1015 GraphicUsed by:1017
Symbol 1016 TextUses:947Used by:1017
Symbol 1017 MovieClipUses:969 993 970 994 971 995 972 996 973 997 974 998 975 999 976 1000 977 1001 978 1002 979 1003 980 1004 981 1005 982 1006 983 1007 984 1008 985 1009 986 1010 987 1011 988 1012 1013 1014 1015 1016Used by:1020
Symbol 1018 GraphicUsed by:1020
Symbol 1019 GraphicUsed by:1020
Symbol 1020 MovieClipUses:992 968 1017 1018 1019Used by:1023
Symbol 1021 GraphicUsed by:1022
Symbol 1022 MovieClipUses:1021Used by:1023
Symbol 1023 MovieClipUses:1020 1022Used by:1024
Symbol 1024 MovieClipUses:946 967 968 991 1023Used by:1031
Symbol 1025 FontUsed by:1026 1027 1028 1029
Symbol 1026 EditableTextUses:1025Used by:1030
Symbol 1027 EditableTextUses:1025Used by:1030
Symbol 1028 EditableTextUses:1025Used by:1030
Symbol 1029 EditableTextUses:1025Used by:1030
Symbol 1030 MovieClipUses:531 1026 1027 1028 1029Used by:1031
Symbol 1031 MovieClip {mainScreen} [mainScreen]Uses:528 935 939 941 943 944 507 1024 1030
Symbol 1032 Sound {nextlevel} [nextlevel]
Symbol 1033 GraphicUsed by:1034
Symbol 1034 MovieClipUses:1033Used by:1064 1205
Symbol 1035 GraphicUsed by:1036
Symbol 1036 MovieClipUses:1035Used by:1064
Symbol 1037 GraphicUsed by:1040 1203 1258
Symbol 1038 GraphicUsed by:1040 1043 1203 1258
Symbol 1039 GraphicUsed by:1040
Symbol 1040 MovieClipUses:1037 837 1038 1039Used by:1064
Symbol 1041 GraphicUsed by:1043
Symbol 1042 GraphicUsed by:1043
Symbol 1043 MovieClipUses:1041 700 1038 1042Used by:1064 1205 1235
Symbol 1044 TextUses:29Used by:1054
Symbol 1045 TextUses:29Used by:1054
Symbol 1046 TextUses:29Used by:1054
Symbol 1047 TextUses:29Used by:1054
Symbol 1048 TextUses:29Used by:1054
Symbol 1049 TextUsed by:1054
Symbol 1050 TextUses:29Used by:1054
Symbol 1051 TextUses:521Used by:1054
Symbol 1052 TextUses:521 523Used by:1054
Symbol 1053 TextUses:29Used by:1054
Symbol 1054 MovieClip {txt_gameover} [txt_gameover]Uses:1044 1045 1046 1047 1048 1049 1050 1051 1052 1053Used by:1064
Symbol 1055 GraphicUsed by:1058
Symbol 1056 GraphicUsed by:1058
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1]Uses:1055 733 358 1056 1057Used by:1064 1205 1341
Symbol 1059 EditableTextUses:29Used by:1064
Symbol 1060 GraphicUsed by:1061
Symbol 1061 MovieClipUses:1060Used by:1062
Symbol 1062 MovieClipUses:1061Used by:1064
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClip {UI_gameover} [UI_gameover]Uses:1034 1036 1040 1043 1054 1058 34 565 1059 1062 1063Used by:1377
Symbol 1065 TextUses:29Used by:1081
Symbol 1066 TextUses:29Used by:1081
Symbol 1067 TextUses:29Used by:1081
Symbol 1068 TextUses:29Used by:1081
Symbol 1069 TextUses:29Used by:1081
Symbol 1070 TextUses:29Used by:1081
Symbol 1071 TextUses:29Used by:1081
Symbol 1072 TextUses:29Used by:1081
Symbol 1073 TextUses:29Used by:1081
Symbol 1074 TextUses:29Used by:1081
Symbol 1075 TextUsed by:1081
Symbol 1076 TextUses:29Used by:1081
Symbol 1077 TextUses:521 29Used by:1081
Symbol 1078 TextUses:521Used by:1081
Symbol 1079 TextUses:29Used by:1081
Symbol 1080 TextUses:29Used by:1081
Symbol 1081 MovieClip {txt_Congratulations} [txt_Congratulations]Uses:1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080Used by:1205
Symbol 1082 TextUses:29Used by:1099
Symbol 1083 TextUses:29Used by:1099
Symbol 1084 TextUses:29Used by:1099
Symbol 1085 TextUses:29Used by:1099
Symbol 1086 TextUses:29Used by:1099
Symbol 1087 TextUses:29Used by:1099
Symbol 1088 TextUses:29Used by:1099
Symbol 1089 TextUses:29Used by:1099
Symbol 1090 TextUses:29Used by:1099
Symbol 1091 TextUses:29Used by:1099
Symbol 1092 TextUses:29Used by:1099
Symbol 1093 TextUses:29Used by:1099
Symbol 1094 TextUses:29Used by:1099
Symbol 1095 TextUses:521 29Used by:1099
Symbol 1096 TextUses:521 523 29Used by:1099
Symbol 1097 TextUses:29Used by:1099
Symbol 1098 TextUses:29Used by:1099
Symbol 1099 MovieClip {txt_Thistellsyouhowmanyturnsyouhaveleft.Youwillalsos} [txt_Thistellsyouhowmanyturnsyouhaveleft.Youwillalsos]Uses:1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 632 1094 1095 1096 1097 1098Used by:1172
Symbol 1100 TextUses:29Used by:1102
Symbol 1101 EditableTextUses:29Used by:1102
Symbol 1102 MovieClipUses:1100 1101Used by:1103
Symbol 1103 MovieClip {export_fla.animation__4} [export_fla.animation__4]Uses:1102Used by:1372
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClip {export_fla.btn__27} [export_fla.btn__27]Uses:734 1104 537Used by:1172 1372
Symbol 1106 TextUses:529Used by:1117
Symbol 1107 TextUses:529Used by:1117
Symbol 1108 EditableTextUses:529Used by:1117
Symbol 1109 TextUses:529Used by:1110
Symbol 1110 MovieClipUses:531 1109Used by:1117
Symbol 1111 TextUses:529Used by:1112
Symbol 1112 MovieClipUses:531 1111Used by:1117
Symbol 1113 TextUses:529Used by:1114
Symbol 1114 MovieClipUses:531 1113Used by:1117
Symbol 1115 TextUses:529Used by:1116
Symbol 1116 MovieClipUses:531 1115Used by:1117 1376
Symbol 1117 MovieClip {DiffSelect} [DiffSelect]Uses:528 1106 533 1107 1108 1110 1112 1114 1116
Symbol 1118 TextUses:29Used by:1132
Symbol 1119 TextUses:29Used by:1132
Symbol 1120 TextUses:29Used by:1132
Symbol 1121 TextUses:29Used by:1132
Symbol 1122 TextUses:29Used by:1132
Symbol 1123 TextUses:29Used by:1132
Symbol 1124 TextUses:29Used by:1132
Symbol 1125 TextUses:29Used by:1132
Symbol 1126 TextUses:29Used by:1132
Symbol 1127 TextUses:29Used by:1132
Symbol 1128 TextUses:29Used by:1132
Symbol 1129 TextUses:29Used by:1132
Symbol 1130 TextUses:521Used by:1132
Symbol 1131 TextUses:523Used by:1132
Symbol 1132 MovieClip {txt_resume} [txt_resume]Uses:1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 658 1129 1130 1131Used by:1227
Symbol 1133 TextUses:29Used by:1172
Symbol 1134 GraphicUsed by:1172 1372
Symbol 1135 TextUses:29Used by:1148
Symbol 1136 TextUses:29Used by:1148
Symbol 1137 TextUses:29Used by:1148
Symbol 1138 TextUses:29Used by:1148
Symbol 1139 TextUses:29Used by:1148
Symbol 1140 TextUses:29Used by:1148
Symbol 1141 TextUses:29Used by:1148
Symbol 1142 TextUses:29Used by:1148
Symbol 1143 TextUses:29Used by:1148
Symbol 1144 TextUses:29Used by:1148
Symbol 1145 TextUsed by:1148
Symbol 1146 TextUses:521Used by:1148
Symbol 1147 TextUses:521 523Used by:1148
Symbol 1148 MovieClip {txt_level} [txt_level]Uses:1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147Used by:1172 1372
Symbol 1149 TextUses:29Used by:1172
Symbol 1150 TextUses:29Used by:1172
Symbol 1151 TextUses:29Used by:1163
Symbol 1152 TextUses:29Used by:1163
Symbol 1153 TextUses:29Used by:1163
Symbol 1154 TextUses:29Used by:1163
Symbol 1155 TextUses:29Used by:1163
Symbol 1156 TextUses:29Used by:1163
Symbol 1157 TextUses:29Used by:1163
Symbol 1158 TextUses:29Used by:1163
Symbol 1159 TextUses:29Used by:1163
Symbol 1160 TextUses:521Used by:1163
Symbol 1161 TextUses:521Used by:1163
Symbol 1162 TextUses:29Used by:1163
Symbol 1163 MovieClip {txt_Yourscore} [txt_Yourscore]Uses:1151 1152 1153 1154 1155 1156 1157 1158 881 1159 1160 1161 1162Used by:1172 1372
Symbol 1164 GraphicUsed by:1172
Symbol 1165 MovieClip {export_fla.btn__31} [export_fla.btn__31]Uses:734 547Used by:1172 1372
Symbol 1166 MovieClip {export_fla.btn__37} [export_fla.btn__37]Uses:734 543Used by:1172 1372
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1172
Symbol 1169 GraphicUsed by:1170
Symbol 1170 MovieClipUses:1169Used by:1171
Symbol 1171 MovieClipUses:1170Used by:1172
Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay]Uses:2 1133 1134 1148 1149 885 1150 1163 1164 906 1105 735 1165 928 929 1166 1168 1171 856 1099 638 927 680Used by:1377
Symbol 1173 FontUsed by:569 1174 1373
Symbol 1174 TextUses:1173Used by:1175
Symbol 1175 MovieClip {localization} [localization]Uses:1174
Symbol 1176 GraphicUsed by:1205
Symbol 1177 GraphicUsed by:1205
Symbol 1178 GraphicUsed by:1179
Symbol 1179 MovieClipUses:1178Used by:1180
Symbol 1180 MovieClipUses:1179Used by:1205
Symbol 1181 GraphicUsed by:1205
Symbol 1182 MovieClipUses:644Used by:1205
Symbol 1183 MovieClipUses:644Used by:1205
Symbol 1184 MovieClipUses:644Used by:1205
Symbol 1185 TextUses:29Used by:1201
Symbol 1186 TextUses:29Used by:1201
Symbol 1187 TextUses:29Used by:1201
Symbol 1188 TextUses:29Used by:1201
Symbol 1189 TextUses:29Used by:1201
Symbol 1190 TextUses:29Used by:1201
Symbol 1191 TextUses:29Used by:1201
Symbol 1192 TextUses:29Used by:1201
Symbol 1193 TextUses:29Used by:1201
Symbol 1194 TextUses:29Used by:1201
Symbol 1195 TextUses:29Used by:1201
Symbol 1196 TextUses:29Used by:1201
Symbol 1197 TextUses:521 29Used by:1201
Symbol 1198 TextUses:521Used by:1201
Symbol 1199 TextUses:29Used by:1201
Symbol 1200 TextUses:29Used by:1201
Symbol 1201 MovieClip {txt_Restartgame} [txt_Restartgame]Uses:1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 658 1196 1197 1198 1199 1200Used by:1203
Symbol 1202 GraphicUsed by:1203
Symbol 1203 MovieClipUses:1037 1201 1038 1202Used by:1205
Symbol 1204 EditableTextUses:29Used by:1205
Symbol 1205 MovieClip {UI_win} [UI_win]Uses:1034 1176 1177 1180 1181 645 1182 1183 1184 1203 1043 1058 34 565 1204 527 1081Used by:1377
Symbol 1206 TextUses:29Used by:1221
Symbol 1207 TextUses:29Used by:1221
Symbol 1208 TextUses:29Used by:1221
Symbol 1209 TextUses:29Used by:1221
Symbol 1210 TextUses:29Used by:1221
Symbol 1211 TextUses:29Used by:1221
Symbol 1212 TextUses:29Used by:1221
Symbol 1213 TextUses:29Used by:1221
Symbol 1214 TextUses:29Used by:1221
Symbol 1215 TextUses:29Used by:1221
Symbol 1216 TextUsed by:1221
Symbol 1217 TextUses:29Used by:1221
Symbol 1218 TextUses:521Used by:1221
Symbol 1219 TextUses:523 521Used by:1221
Symbol 1220 TextUses:29Used by:1221
Symbol 1221 MovieClip {txt_extra} [txt_extra]Uses:1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220Used by:1346
Symbol 1222 GraphicUsed by:1235
Symbol 1223 GraphicUsed by:1226 1227
Symbol 1224 GraphicUsed by:1226 1227
Symbol 1225 GraphicUsed by:1226 1227
Symbol 1226 MovieClipUses:1223 821 1224 1225Used by:1235 1341
Symbol 1227 MovieClipUses:1223 1132 1224 1225Used by:1235
Symbol 1228 GraphicUsed by:1231 1234
Symbol 1229 GraphicUsed by:1231
Symbol 1230 GraphicUsed by:1231
Symbol 1231 MovieClipUses:1228 1229 1230Used by:1235 1341
Symbol 1232 GraphicUsed by:1234
Symbol 1233 GraphicUsed by:1234
Symbol 1234 MovieClipUses:1228 1232 1233Used by:1235 1341
Symbol 1235 MovieClip {UI_menu} [UI_menu]Uses:1222 1043 1226 1227 1231 1234Used by:1377
Symbol 1236 TextUses:29Used by:1254
Symbol 1237 TextUses:29Used by:1254
Symbol 1238 TextUses:29Used by:1254
Symbol 1239 TextUses:29Used by:1254
Symbol 1240 TextUses:29Used by:1254
Symbol 1241 TextUses:29Used by:1254
Symbol 1242 TextUses:29Used by:1254
Symbol 1243 TextUses:29Used by:1254
Symbol 1244 TextUses:29Used by:1254
Symbol 1245 TextUses:29Used by:1254
Symbol 1246 TextUses:29Used by:1254
Symbol 1247 TextUses:29Used by:1254
Symbol 1248 TextUsed by:1254
Symbol 1249 TextUses:29Used by:1254
Symbol 1250 TextUses:521 29Used by:1254
Symbol 1251 TextUses:521Used by:1254
Symbol 1252 TextUses:29Used by:1254
Symbol 1253 TextUses:29Used by:1254
Symbol 1254 MovieClip {txt_Notrunsleft} [txt_Notrunsleft]Uses:1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253Used by:1255
Symbol 1255 MovieClip {export_fla.animation_Notrunsleft_19} [export_fla.animation_Notrunsleft_19]Uses:1254Used by:1372
Symbol 1256 MovieClip {txt_startgame} [txt_startgame]Uses:648 649 650 651 652 653 654 655 656 657 658 659 660 661Used by:1258
Symbol 1257 GraphicUsed by:1258
Symbol 1258 MovieClip {export_fla.btn_startgame_193} [export_fla.btn_startgame_193]Uses:1037 1256 1038 1257Used by:1341
Symbol 1259 MovieClipUses:548Used by:1341
Symbol 1260 GraphicUsed by:1261
Symbol 1261 MovieClipUses:1260Used by:1337
Symbol 1262 TextUses:947Used by:1281
Symbol 1263 TextUses:947Used by:1281
Symbol 1264 GraphicUsed by:1281
Symbol 1265 TextUses:947Used by:1281
Symbol 1266 TextUses:947Used by:1281
Symbol 1267 TextUses:947Used by:1281
Symbol 1268 TextUses:947Used by:1281
Symbol 1269 TextUses:947Used by:1281
Symbol 1270 GraphicUsed by:1281
Symbol 1271 TextUses:947Used by:1281
Symbol 1272 TextUses:947Used by:1281
Symbol 1273 TextUses:947Used by:1281
Symbol 1274 TextUses:947Used by:1281
Symbol 1275 TextUses:947Used by:1281
Symbol 1276 TextUses:947Used by:1281
Symbol 1277 TextUses:947Used by:1281
Symbol 1278 TextUses:947Used by:1281
Symbol 1279 TextUses:947Used by:1281
Symbol 1280 TextUses:947Used by:1281
Symbol 1281 MovieClipUses:1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280Used by:1337
Symbol 1282 GraphicUsed by:1304 1330
Symbol 1283 GraphicUsed by:1304 1330
Symbol 1284 GraphicUsed by:1304 1330
Symbol 1285 GraphicUsed by:1304 1330
Symbol 1286 GraphicUsed by:1304 1330
Symbol 1287 GraphicUsed by:1304 1330
Symbol 1288 GraphicUsed by:1304 1330
Symbol 1289 GraphicUsed by:1304 1330
Symbol 1290 GraphicUsed by:1304 1330
Symbol 1291 GraphicUsed by:1304 1330
Symbol 1292 GraphicUsed by:1304 1330
Symbol 1293 GraphicUsed by:1304 1330
Symbol 1294 GraphicUsed by:1304 1330
Symbol 1295 GraphicUsed by:1304 1330
Symbol 1296 GraphicUsed by:1304 1330
Symbol 1297 GraphicUsed by:1304 1330
Symbol 1298 GraphicUsed by:1304 1330
Symbol 1299 GraphicUsed by:1304 1330
Symbol 1300 GraphicUsed by:1304 1330
Symbol 1301 GraphicUsed by:1304 1330
Symbol 1302 GraphicUsed by:1304
Symbol 1303 GraphicUsed by:1304
Symbol 1304 MovieClipUses:1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303Used by:1337
Symbol 1305 GraphicUsed by:1333
Symbol 1306 TextUses:947Used by:1330
Symbol 1307 TextUses:947Used by:1330
Symbol 1308 TextUses:947Used by:1330
Symbol 1309 TextUses:947Used by:1330
Symbol 1310 TextUses:947Used by:1330
Symbol 1311 TextUses:947Used by:1330
Symbol 1312 TextUses:947Used by:1330
Symbol 1313 TextUses:947Used by:1330
Symbol 1314 TextUses:947Used by:1330
Symbol 1315 TextUses:947Used by:1330
Symbol 1316 TextUses:947Used by:1330
Symbol 1317 TextUses:947Used by:1330
Symbol 1318 TextUses:947Used by:1330
Symbol 1319 TextUses:947Used by:1330
Symbol 1320 TextUses:947Used by:1330
Symbol 1321 TextUses:947Used by:1330
Symbol 1322 TextUses:947Used by:1330
Symbol 1323 TextUses:947Used by:1330
Symbol 1324 TextUses:947Used by:1330
Symbol 1325 TextUses:947Used by:1330
Symbol 1326 GraphicUsed by:1330
Symbol 1327 TextUses:947Used by:1330
Symbol 1328 GraphicUsed by:1330
Symbol 1329 TextUses:947Used by:1330
Symbol 1330 MovieClipUses:1282 1306 1283 1307 1284 1308 1285 1309 1286 1310 1287 1311 1288 1312 1289 1313 1290 1314 1291 1315 1292 1316 1293 1317 1294 1318 1295 1319 1296 1320 1297 1321 1298 1322 1299 1323 1300 1324 1301 1325 1326 1327 1328 1329Used by:1333
Symbol 1331 GraphicUsed by:1333
Symbol 1332 GraphicUsed by:1333
Symbol 1333 MovieClipUses:1305 27 1330 1331 1332Used by:1336
Symbol 1334 GraphicUsed by:1335
Symbol 1335 MovieClipUses:1334Used by:1336
Symbol 1336 MovieClipUses:1333 1335Used by:1337
Symbol 1337 MovieClip {CountriesBox} [CountriesBox]Uses:1261 1281 27 1304 1336Used by:1341
Symbol 1338 FontUsed by:1339
Symbol 1339 EditableTextUses:1338Used by:1341
Symbol 1340 GraphicUsed by:1341
Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu]Uses:2 1226 1258 1234 1231 22 1259 34 1058 1337 1339 1340Used by:1377
Symbol 1342 EditableTextUses:29Used by:1372
Symbol 1343 EditableTextUses:29Used by:1372
Symbol 1344 TextUses:29Used by:1346
Symbol 1345 EditableTextUses:29Used by:1346
Symbol 1346 MovieClipUses:1221 1344 1345Used by:1372
Symbol 1347 MovieClipUses:619Used by:1372
Symbol 1348 GraphicUsed by:1351
Symbol 1349 GraphicUsed by:1351
Symbol 1350 GraphicUsed by:1351
Symbol 1351 MovieClipUses:1348 869 1349 1350Used by:1372
Symbol 1352 GraphicUsed by:1369
Symbol 1353 TextUses:29Used by:1366
Symbol 1354 TextUses:29Used by:1366
Symbol 1355 TextUses:29Used by:1366
Symbol 1356 TextUses:29Used by:1366
Symbol 1357 TextUses:29Used by:1366
Symbol 1358 TextUses:29Used by:1366
Symbol 1359 TextUses:29Used by:1366
Symbol 1360 TextUses:29Used by:1366
Symbol 1361 TextUses:29Used by:1366
Symbol 1362 TextUses:29Used by:1366
Symbol 1363 TextUses:29Used by:1366
Symbol 1364 TextUses:521Used by:1366
Symbol 1365 TextUses:521Used by:1366
Symbol 1366 MovieClip {txt_menu} [txt_menu]Uses:1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 658 1363 1364 1365Used by:1369
Symbol 1367 GraphicUsed by:1369
Symbol 1368 GraphicUsed by:1369
Symbol 1369 MovieClipUses:1352 1366 1367 1368Used by:1372
Symbol 1370 GraphicUsed by:1372
Symbol 1371 MovieClip {logoBtn} [logoBtn]Uses:358Used by:1372
Symbol 1372 MovieClip {UI_game_in} [UI_game_in]Uses:2 1134 1103 1148 1342 885 1343 1163 1346 1347 646 593 1255 1351 1369 1370 906 1105 735 1165 928 929 1166 1371 595Used by:1377
Symbol 1373 EditableTextUses:529 567 1173Used by:1374
Symbol 1374 MovieClip {Credit} [Credit]Uses:528 1373 533
Symbol 1375 TextUses:529Used by:1376
Symbol 1376 MovieClip {LevelLost} [LevelLost]Uses:528 1375 533 1116
Symbol 1377 MovieClip {export} [export]Uses:1372 1341 640 682 615 611 642 613 363 1172 1064 1205 807 1235
Symbol 1378 TextUses:529Used by:1383
Symbol 1379 TextUses:529Used by:1383
Symbol 1380 EditableTextUses:529Used by:1383
Symbol 1381 TextUses:529Used by:1382
Symbol 1382 MovieClipUses:531 1381Used by:1383
Symbol 1383 MovieClip {LevelSelect} [LevelSelect]Uses:528 1378 533 1379 1380 1382
Symbol 1384 TextUses:529Used by:1385
Symbol 1385 MovieClip {HowtoPlay} [HowtoPlay]Uses:528 1384 533
Symbol 1386 Sound {fruit_change} [fruit_change]
Symbol 1387 Sound {menu_touch} [menu_touch]

Instance Names

"displayArea_mc"Symbol 42 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 55 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 59 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 63 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 67 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 71 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 75 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 77 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 81 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 83 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 87 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 91 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 95 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 97 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 99 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 101 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 125 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 127 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 129 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 131 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 133 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 135 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 137 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 139 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 141 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 143 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 145 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 147 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 149 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 153 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 157 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 163 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 358 MovieClip {Logo} [Logo] Frame 1Symbol 41 MovieClip
"wh"Symbol 358 MovieClip {Logo} [Logo] Frame 49Symbol 41 MovieClip
"wh"Symbol 358 MovieClip {Logo} [Logo] Frame 54Symbol 41 MovieClip
"poweredby"Symbol 361 MovieClip {PowerBy} [PowerBy] Frame 1Symbol 360 MovieClip
"logohyves"Symbol 362 MovieClip {HyvesLoading} [HyvesLoading] Frame 1Symbol 358 MovieClip {Logo} [Logo]
"logo"Symbol 362 MovieClip {HyvesLoading} [HyvesLoading] Frame 1Symbol 358 MovieClip {Logo} [Logo]
"perBar"Symbol 363 MovieClip {UI_loading} [UI_loading] Frame 1Symbol 28 MovieClip
"perText"Symbol 363 MovieClip {UI_loading} [UI_loading] Frame 1Symbol 30 EditableText
"displayArea_mc"Symbol 368 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 379 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 383 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 387 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 391 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 395 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 399 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 401 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 405 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 407 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 411 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 415 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 419 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 421 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 445 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 447 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 449 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 451 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 453 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 455 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 457 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 459 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 461 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 463 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 465 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 467 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 469 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 475 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 481 MovieClip Frame 1Symbol 41 MovieClip
"displayArea_mc"Symbol 504 MovieClip Frame 1Symbol 41 MovieClip
"__id1_"Symbol 507 MovieClip {MoreGamesLogo} [MoreGamesLogo] Frame 1Symbol 504 MovieClip
"ok_button"Symbol 534 MovieClip {GameLost} [GameLost] Frame 1Symbol 533 MovieClip
"perText"Symbol 573 MovieClip {Mc_UiLoading} [Mc_UiLoading] Frame 1Symbol 569 EditableText
"perBar"Symbol 573 MovieClip {Mc_UiLoading} [Mc_UiLoading] Frame 1Symbol 572 MovieClip
"pause_button"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 598 MovieClip
"lose_button"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 600 MovieClip
"win_button"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 602 MovieClip
"diff_textField"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 606 EditableText
"level_textField"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 607 EditableText
"user_textField"Symbol 609 MovieClip {gameScreen} [gameScreen] Frame 1Symbol 608 EditableText
"txt"Symbol 618 MovieClip Frame 1Symbol 617 EditableText
"m2"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 1Symbol 618 MovieClip
"m1"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 1Symbol 618 MovieClip
"txt"Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232] Frame 1Symbol 677 MovieClip {txt_start} [txt_start]
"nextLevel_button"Symbol 686 MovieClip {LevelWin} [LevelWin] Frame 1Symbol 685 MovieClip
"resetBt"Symbol 807 MovieClip {UI_statis} [UI_statis] Frame 1Symbol 752 MovieClip
"backBt"Symbol 807 MovieClip {UI_statis} [UI_statis] Frame 1Symbol 754 MovieClip
"txt_LC"Symbol 807 MovieClip {UI_statis} [UI_statis] Frame 1Symbol 755 EditableText
"txt_LF"Symbol 807 MovieClip {UI_statis} [UI_statis] Frame 1Symbol 755 EditableText
"txt_P"Symbol 807 MovieClip {UI_statis} [UI_statis] Frame 1Symbol 755 EditableText
"ok_button"Symbol 931 MovieClip {GameWin} [GameWin] Frame 1Symbol 533 MovieClip
"flag"Symbol 1020 MovieClip Frame 1Symbol 1017 MovieClip
"l_cn"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_br"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_es"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_de"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_id"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_fr"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_it"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_in"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_my"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_jp"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_pl"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_nl"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_ru"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_pt"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_tr"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_se"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_en_us"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_en_uk"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_ph"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_ar"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"_blank"Symbol 1023 MovieClip Frame 1Symbol 1022 MovieClip
"l_arg"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"l_mx"Symbol 1023 MovieClip Frame 1Symbol 1020 MovieClip
"selectbox"Symbol 1024 MovieClip Frame 1Symbol 946 MovieClip
"countryName"Symbol 1024 MovieClip Frame 1Symbol 967 MovieClip
"flag"Symbol 1024 MovieClip Frame 1Symbol 991 MovieClip
"popList"Symbol 1024 MovieClip Frame 1Symbol 1023 MovieClip
"gameStart_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 935 MovieClip
"sound_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 939 MovieClip
"howtoplay_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 941 MovieClip
"resume_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 943 MovieClip
"music_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 939 MovieClip
"quality_button"Symbol 1031 MovieClip {mainScreen} [mainScreen] Frame 1Symbol 1030 MovieClip
"site"Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1] Frame 1Symbol 733 MovieClip {export_fla.txt_moregames_202} [export_fla.txt_moregames_202]
"__id1_"Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1] Frame 1Symbol 358 MovieClip {Logo} [Logo]
"tryAgainBt"Symbol 1064 MovieClip {UI_gameover} [UI_gameover] Frame 1Symbol 1040 MovieClip
"mainMenuBt"Symbol 1064 MovieClip {UI_gameover} [UI_gameover] Frame 1Symbol 1043 MovieClip
"moreGamesBt"Symbol 1064 MovieClip {UI_gameover} [UI_gameover] Frame 1Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1]
"logo_button"Symbol 1064 MovieClip {UI_gameover} [UI_gameover] Frame 1Symbol 34 MovieClip
"score"Symbol 1064 MovieClip {UI_gameover} [UI_gameover] Frame 1Symbol 1059 EditableText
"ok_button"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 533 MovieClip
"difficult_textField"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 1108 EditableText
"easyMode_button"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 1110 MovieClip
"normalMode_button"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 1112 MovieClip
"hardMode_button"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 1114 MovieClip
"back_button"Symbol 1117 MovieClip {DiffSelect} [DiffSelect] Frame 1Symbol 1116 MovieClip
"shuffleBt"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 906 MovieClip {export_fla.btn_shuffle_25} [export_fla.btn_shuffle_25]
"bt_1"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 1105 MovieClip {export_fla.btn__27} [export_fla.btn__27]
"bt_2"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 735 MovieClip {export_fla.icon__29} [export_fla.icon__29]
"bt_3"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 1165 MovieClip {export_fla.btn__31} [export_fla.btn__31]
"bt_4"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 928 MovieClip {export_fla.icon__33} [export_fla.icon__33]
"bt_5"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 929 MovieClip {export_fla.icon__35} [export_fla.icon__35]
"bt_6"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 1166 MovieClip {export_fla.btn__37} [export_fla.btn__37]
"ok_button"Symbol 1172 MovieClip {UI_howtoplay} [UI_howtoplay] Frame 1Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232]
"tryAgainBt"Symbol 1205 MovieClip {UI_win} [UI_win] Frame 1Symbol 1203 MovieClip
"mainMenuBt"Symbol 1205 MovieClip {UI_win} [UI_win] Frame 1Symbol 1043 MovieClip
"moreGamesBt"Symbol 1205 MovieClip {UI_win} [UI_win] Frame 1Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1]
"logo_button"Symbol 1205 MovieClip {UI_win} [UI_win] Frame 1Symbol 34 MovieClip
"score"Symbol 1205 MovieClip {UI_win} [UI_win] Frame 1Symbol 1204 EditableText
"mainMenuBt"Symbol 1235 MovieClip {UI_menu} [UI_menu] Frame 1Symbol 1043 MovieClip
"helpBt"Symbol 1235 MovieClip {UI_menu} [UI_menu] Frame 1Symbol 1226 MovieClip
"backBt"Symbol 1235 MovieClip {UI_menu} [UI_menu] Frame 1Symbol 1227 MovieClip
"musicBt"Symbol 1235 MovieClip {UI_menu} [UI_menu] Frame 1Symbol 1231 MovieClip
"soundBt"Symbol 1235 MovieClip {UI_menu} [UI_menu] Frame 1Symbol 1234 MovieClip
"flag"Symbol 1333 MovieClip Frame 1Symbol 1330 MovieClip
"l_cn"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_br"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_es"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_de"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_id"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_fr"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_it"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_in"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_my"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_jp"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_pl"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_nl"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_ru"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_pt"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_tr"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_se"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_en_us"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_en_uk"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_ph"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_ar"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"_blank"Symbol 1336 MovieClip Frame 1Symbol 1335 MovieClip
"l_arg"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"l_mx"Symbol 1336 MovieClip Frame 1Symbol 1333 MovieClip
"selectbox"Symbol 1337 MovieClip {CountriesBox} [CountriesBox] Frame 1Symbol 1261 MovieClip
"countryName"Symbol 1337 MovieClip {CountriesBox} [CountriesBox] Frame 1Symbol 1281 MovieClip
"flag"Symbol 1337 MovieClip {CountriesBox} [CountriesBox] Frame 1Symbol 1304 MovieClip
"popList"Symbol 1337 MovieClip {CountriesBox} [CountriesBox] Frame 1Symbol 1336 MovieClip
"help_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1226 MovieClip
"gameStart_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1258 MovieClip {export_fla.btn_startgame_193} [export_fla.btn_startgame_193]
"sound_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1234 MovieClip
"music_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1231 MovieClip
"logo_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 34 MovieClip
"moreGame_button"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1]
"versionTxt"Symbol 1341 MovieClip {UI_mainmenu} [UI_mainmenu] Frame 1Symbol 1339 EditableText
"txtExtra"Symbol 1346 MovieClip Frame 1Symbol 1345 EditableText
"s9"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s8"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s7"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s6"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s5"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s4"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s3"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s2"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"s1"Symbol 1347 MovieClip Frame 1Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12]
"__id0_"Symbol 1371 MovieClip {logoBtn} [logoBtn] Frame 1Symbol 358 MovieClip {Logo} [Logo]
"effectScore1w"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1103 MovieClip {export_fla.animation__4} [export_fla.animation__4]
"txtLevel"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1342 EditableText
"txtStep"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1343 EditableText
"showExtra"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1346 MovieClip
"totalNum"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1347 MovieClip
"effectExtra"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 646 MovieClip {export_fla.Timeline_14} [export_fla.Timeline_14]
"levelUp"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 593 MovieClip {export_fla.animation_Levelup_17} [export_fla.animation_Levelup_17]
"noturn"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1255 MovieClip {export_fla.animation_Notrunsleft_19} [export_fla.animation_Notrunsleft_19]
"statisBt"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1351 MovieClip
"menuBt"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1369 MovieClip
"shuffleBt"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 906 MovieClip {export_fla.btn_shuffle_25} [export_fla.btn_shuffle_25]
"bt_1"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1105 MovieClip {export_fla.btn__27} [export_fla.btn__27]
"bt_2"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 735 MovieClip {export_fla.icon__29} [export_fla.icon__29]
"bt_3"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1165 MovieClip {export_fla.btn__31} [export_fla.btn__31]
"bt_4"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 928 MovieClip {export_fla.icon__33} [export_fla.icon__33]
"bt_5"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 929 MovieClip {export_fla.icon__35} [export_fla.icon__35]
"bt_6"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1166 MovieClip {export_fla.btn__37} [export_fla.btn__37]
"aaa"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 1371 MovieClip {logoBtn} [logoBtn]
"startp"Symbol 1372 MovieClip {UI_game_in} [UI_game_in] Frame 1Symbol 595 MovieClip {export_fla.empty_189} [export_fla.empty_189]
"ok_button"Symbol 1374 MovieClip {Credit} [Credit] Frame 1Symbol 533 MovieClip
"retry_button"Symbol 1376 MovieClip {LevelLost} [LevelLost] Frame 1Symbol 533 MovieClip
"back_button"Symbol 1376 MovieClip {LevelLost} [LevelLost] Frame 1Symbol 1116 MovieClip
"ok_button"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 533 MovieClip
"levelNum_textField"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1380 EditableText
"levelbutton_1"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1382 MovieClip
"levelbutton_2"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1382 MovieClip
"levelbutton_3"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1382 MovieClip
"levelbutton_4"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1382 MovieClip
"levelbutton_5"Symbol 1383 MovieClip {LevelSelect} [LevelSelect] Frame 1Symbol 1382 MovieClip
"ok_button"Symbol 1385 MovieClip {HowtoPlay} [HowtoPlay] Frame 1Symbol 533 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1560 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 2Symbol 363 as "UI_loading"
ExportAssets (56)Timeline Frame 2Symbol 22 as "mainlogo"
ExportAssets (56)Timeline Frame 2Symbol 362 as "HyvesLoading"
ExportAssets (56)Timeline Frame 2Symbol 361 as "PowerBy"
ExportAssets (56)Timeline Frame 2Symbol 358 as "Logo"
ExportAssets (56)Timeline Frame 2Symbol 36 as "hyves_games"
ExportAssets (56)Timeline Frame 3Symbol 507 as "MoreGamesLogo"
ExportAssets (56)Timeline Frame 3Symbol 527 as "txt_Game_complete"
ExportAssets (56)Timeline Frame 3Symbol 534 as "GameLost"
ExportAssets (56)Timeline Frame 3Symbol 535 as "other_click"
ExportAssets (56)Timeline Frame 3Symbol 548 as "export_fla.mainmenu_199"
ExportAssets (56)Timeline Frame 3Symbol 565 as "Your_total_score"
ExportAssets (56)Timeline Frame 3Symbol 573 as "Mc_UiLoading"
ExportAssets (56)Timeline Frame 3Symbol 593 as "export_fla.animation_Levelup_17"
ExportAssets (56)Timeline Frame 3Symbol 595 as "export_fla.empty_189"
ExportAssets (56)Timeline Frame 3Symbol 609 as "gameScreen"
ExportAssets (56)Timeline Frame 3Symbol 611 as "Ball_4"
ExportAssets (56)Timeline Frame 3Symbol 613 as "Ball_5"
ExportAssets (56)Timeline Frame 3Symbol 615 as "Ball_6"
ExportAssets (56)Timeline Frame 3Symbol 619 as "export_fla.scoreEff1_12"
ExportAssets (56)Timeline Frame 3Symbol 638 as "txt_Theabjectofthegameistochangeallofthesquaresonth"
ExportAssets (56)Timeline Frame 3Symbol 640 as "Ball_1"
ExportAssets (56)Timeline Frame 3Symbol 642 as "Ball_2"
ExportAssets (56)Timeline Frame 3Symbol 646 as "export_fla.Timeline_14"
ExportAssets (56)Timeline Frame 3Symbol 680 as "export_fla.btn_start_232"
ExportAssets (56)Timeline Frame 3Symbol 682 as "Ball_3"
ExportAssets (56)Timeline Frame 3Symbol 686 as "LevelWin"
ExportAssets (56)Timeline Frame 3Symbol 700 as "txt_Mainmenu"
ExportAssets (56)Timeline Frame 3Symbol 733 as "export_fla.txt_moregames_202"
ExportAssets (56)Timeline Frame 3Symbol 735 as "export_fla.icon__29"
ExportAssets (56)Timeline Frame 3Symbol 807 as "UI_statis"
ExportAssets (56)Timeline Frame 3Symbol 821 as "txt_howtoplay"
ExportAssets (56)Timeline Frame 3Symbol 837 as "txt_Tryagain"
ExportAssets (56)Timeline Frame 3Symbol 856 as "txt_Youcanshufflethesquares2timesbeforestartthelevel"
ExportAssets (56)Timeline Frame 3Symbol 857 as "menu_press"
ExportAssets (56)Timeline Frame 3Symbol 869 as "txt_statistica"
ExportAssets (56)Timeline Frame 3Symbol 885 as "txt_turnslef"
ExportAssets (56)Timeline Frame 3Symbol 906 as "export_fla.btn_shuffle_25"
ExportAssets (56)Timeline Frame 3Symbol 907 as "fruit_lose"
ExportAssets (56)Timeline Frame 3Symbol 662 as "txt_inhelp_play"
ExportAssets (56)Timeline Frame 3Symbol 908 as "fruit_select"
ExportAssets (56)Timeline Frame 3Symbol 927 as "txt_Startfromhere"
ExportAssets (56)Timeline Frame 3Symbol 928 as "export_fla.icon__33"
ExportAssets (56)Timeline Frame 3Symbol 929 as "export_fla.icon__35"
ExportAssets (56)Timeline Frame 3Symbol 931 as "GameWin"
ExportAssets (56)Timeline Frame 3Symbol 932 as "fruit_game"
ExportAssets (56)Timeline Frame 3Symbol 789 as "txt_Levelfailed"
ExportAssets (56)Timeline Frame 3Symbol 933 as "fruit_menu"
ExportAssets (56)Timeline Frame 3Symbol 1031 as "mainScreen"
ExportAssets (56)Timeline Frame 3Symbol 1032 as "nextlevel"
ExportAssets (56)Timeline Frame 3Symbol 677 as "txt_start"
ExportAssets (56)Timeline Frame 3Symbol 1064 as "UI_gameover"
ExportAssets (56)Timeline Frame 3Symbol 1081 as "txt_Congratulations"
ExportAssets (56)Timeline Frame 3Symbol 714 as "txt_more_game"
ExportAssets (56)Timeline Frame 3Symbol 676 as "txt_inhelpBack"
ExportAssets (56)Timeline Frame 3Symbol 1099 as "txt_Thistellsyouhowmanyturnsyouhaveleft.Youwillalsos"
ExportAssets (56)Timeline Frame 3Symbol 772 as "txt_Levelclear"
ExportAssets (56)Timeline Frame 3Symbol 1054 as "txt_gameover"
ExportAssets (56)Timeline Frame 3Symbol 1103 as "export_fla.animation__4"
ExportAssets (56)Timeline Frame 3Symbol 1105 as "export_fla.btn__27"
ExportAssets (56)Timeline Frame 3Symbol 1117 as "DiffSelect"
ExportAssets (56)Timeline Frame 3Symbol 1132 as "txt_resume"
ExportAssets (56)Timeline Frame 3Symbol 592 as "txt_Level_up"
ExportAssets (56)Timeline Frame 3Symbol 1172 as "UI_howtoplay"
ExportAssets (56)Timeline Frame 3Symbol 1175 as "localization"
ExportAssets (56)Timeline Frame 3Symbol 1205 as "UI_win"
ExportAssets (56)Timeline Frame 3Symbol 732 as "txt_sitelock"
ExportAssets (56)Timeline Frame 3Symbol 1221 as "txt_extra"
ExportAssets (56)Timeline Frame 3Symbol 1058 as "MoreGamesLogo1"
ExportAssets (56)Timeline Frame 3Symbol 1235 as "UI_menu"
ExportAssets (56)Timeline Frame 3Symbol 1255 as "export_fla.animation_Notrunsleft_19"
ExportAssets (56)Timeline Frame 3Symbol 1341 as "UI_mainmenu"
ExportAssets (56)Timeline Frame 3Symbol 1201 as "txt_Restartgame"
ExportAssets (56)Timeline Frame 3Symbol 1165 as "export_fla.btn__31"
ExportAssets (56)Timeline Frame 3Symbol 1166 as "export_fla.btn__37"
ExportAssets (56)Timeline Frame 3Symbol 1372 as "UI_game_in"
ExportAssets (56)Timeline Frame 3Symbol 1374 as "Credit"
ExportAssets (56)Timeline Frame 3Symbol 1254 as "txt_Notrunsleft"
ExportAssets (56)Timeline Frame 3Symbol 1256 as "txt_startgame"
ExportAssets (56)Timeline Frame 3Symbol 1258 as "export_fla.btn_startgame_193"
ExportAssets (56)Timeline Frame 3Symbol 1376 as "LevelLost"
ExportAssets (56)Timeline Frame 3Symbol 749 as "txt_Reset"
ExportAssets (56)Timeline Frame 3Symbol 1377 as "export"
ExportAssets (56)Timeline Frame 3Symbol 1383 as "LevelSelect"
ExportAssets (56)Timeline Frame 3Symbol 1148 as "txt_level"
ExportAssets (56)Timeline Frame 3Symbol 1163 as "txt_Yourscore"
ExportAssets (56)Timeline Frame 3Symbol 1337 as "CountriesBox"
ExportAssets (56)Timeline Frame 3Symbol 1366 as "txt_menu"
ExportAssets (56)Timeline Frame 3Symbol 1371 as "logoBtn"
ExportAssets (56)Timeline Frame 3Symbol 1385 as "HowtoPlay"
ExportAssets (56)Timeline Frame 3Symbol 1386 as "fruit_change"
ExportAssets (56)Timeline Frame 3Symbol 903 as "txt_Shuffle"
ExportAssets (56)Timeline Frame 3Symbol 806 as "txt_Clear_percentage"
ExportAssets (56)Timeline Frame 3Symbol 1387 as "menu_touch"
ExportAssets (56)Timeline Frame 3Symbol 753 as "txt_back"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$3k$StWmLV78GkZazdXvf8zl91."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"Root"Frame 1
"UiLoading"Frame 2
"Main"Frame 3
"www.agame.com"Symbol 358 MovieClip {Logo} [Logo] Frame 1
"www.game.com.cn"Symbol 358 MovieClip {Logo} [Logo] Frame 2
"www.zapjuegos.com"Symbol 358 MovieClip {Logo} [Logo] Frame 3
"www.spel.nl"Symbol 358 MovieClip {Logo} [Logo] Frame 4
"www.jeu.fr"Symbol 358 MovieClip {Logo} [Logo] Frame 5
"www.spielen.com"Symbol 358 MovieClip {Logo} [Logo] Frame 6
"www.clickjogos.com"Symbol 358 MovieClip {Logo} [Logo] Frame 7
"www.giocaregratis.it"Symbol 358 MovieClip {Logo} [Logo] Frame 8
"www.spel.se"Symbol 358 MovieClip {Logo} [Logo] Frame 9
"www.mygames.co.uk"Symbol 358 MovieClip {Logo} [Logo] Frame 10
"www.flashgames.ru"Symbol 358 MovieClip {Logo} [Logo] Frame 11
"www.game.co.in"Symbol 358 MovieClip {Logo} [Logo] Frame 12
"www.games.co.id"Symbol 358 MovieClip {Logo} [Logo] Frame 13
"www.minigry.pl"Symbol 358 MovieClip {Logo} [Logo] Frame 14
"www.asoyun.com"Symbol 358 MovieClip {Logo} [Logo] Frame 15
"www.game.com.my"Symbol 358 MovieClip {Logo} [Logo] Frame 16
"www.gamesgames.com"Symbol 358 MovieClip {Logo} [Logo] Frame 17
"www.spelletjes.nl"Symbol 358 MovieClip {Logo} [Logo] Frame 18
"www.jeux.fr"Symbol 358 MovieClip {Logo} [Logo] Frame 19
"www.jetztspielen.de"Symbol 358 MovieClip {Logo} [Logo] Frame 20
"www.gry.pl"Symbol 358 MovieClip {Logo} [Logo] Frame 21
"www.spela.se"Symbol 358 MovieClip {Logo} [Logo] Frame 22
"www.gioco.it"Symbol 358 MovieClip {Logo} [Logo] Frame 23
"www.juegos.com"Symbol 358 MovieClip {Logo} [Logo] Frame 24
"www.ojogos.com.br"Symbol 358 MovieClip {Logo} [Logo] Frame 25
"www.ourgames.ru"Symbol 358 MovieClip {Logo} [Logo] Frame 26
"www.games.co.uk"Symbol 358 MovieClip {Logo} [Logo] Frame 27
"www.oyunlar123.com"Symbol 358 MovieClip {Logo} [Logo] Frame 28
"www.girlsgogames.com"Symbol 358 MovieClip {Logo} [Logo] Frame 29
"www.girlsgogames.nl"Symbol 358 MovieClip {Logo} [Logo] Frame 30
"www.girlsgogames.fr"Symbol 358 MovieClip {Logo} [Logo] Frame 31
"www.girlsgogames.es"Symbol 358 MovieClip {Logo} [Logo] Frame 32
"www.girlsgogames.de"Symbol 358 MovieClip {Logo} [Logo] Frame 33
"www.girlsgogames.pl"Symbol 358 MovieClip {Logo} [Logo] Frame 34
"www.girlsgogames.se"Symbol 358 MovieClip {Logo} [Logo] Frame 35
"www.juegosdechicas.com"Symbol 358 MovieClip {Logo} [Logo] Frame 36
"www.girlsgogames.it"Symbol 358 MovieClip {Logo} [Logo] Frame 37
"www.girlsgogames.co.uk"Symbol 358 MovieClip {Logo} [Logo] Frame 38
"www.girlsgogames.com.br"Symbol 358 MovieClip {Logo} [Logo] Frame 39
"www.girlsgogames.ru"Symbol 358 MovieClip {Logo} [Logo] Frame 40
"www.girlsgogames.in"Symbol 358 MovieClip {Logo} [Logo] Frame 41
"www.girlsgogamestr.com"Symbol 358 MovieClip {Logo} [Logo] Frame 42
"www.ojogos.pt"Symbol 358 MovieClip {Logo} [Logo] Frame 43
"www.laro.com.ph"Symbol 358 MovieClip {Logo} [Logo] Frame 44
"www.egames.jp"Symbol 358 MovieClip {Logo} [Logo] Frame 45
"www.a10.com"Symbol 358 MovieClip {Logo} [Logo] Frame 46
"www.dailygame.com"Symbol 358 MovieClip {Logo} [Logo] Frame 47
"www.agame.co.uk"Symbol 358 MovieClip {Logo} [Logo] Frame 48
"www.zapapa.com"Symbol 358 MovieClip {Logo} [Logo] Frame 49
"www.juegos.mx"Symbol 358 MovieClip {Logo} [Logo] Frame 50
"www.juegos.com.ar"Symbol 358 MovieClip {Logo} [Logo] Frame 51
"www.juegosdechicas.com.ar"Symbol 358 MovieClip {Logo} [Logo] Frame 52
"www.juegosdechicas.mx"Symbol 358 MovieClip {Logo} [Logo] Frame 53
"www.zapapa.nl"Symbol 358 MovieClip {Logo} [Logo] Frame 54
"www.zapapa.de"Symbol 358 MovieClip {Logo} [Logo] Frame 55
"www.girlsgogames.co.id"Symbol 358 MovieClip {Logo} [Logo] Frame 56
"www.agame.com"Symbol 504 MovieClip Frame 1
"www.game.com.cn"Symbol 504 MovieClip Frame 2
"www.zapjuegos.com"Symbol 504 MovieClip Frame 3
"www.spel.nl"Symbol 504 MovieClip Frame 4
"www.jeu.fr"Symbol 504 MovieClip Frame 5
"www.spielen.com"Symbol 504 MovieClip Frame 6
"www.clickjogos.com"Symbol 504 MovieClip Frame 7
"www.giocaregratis.it"Symbol 504 MovieClip Frame 8
"www.spel.se"Symbol 504 MovieClip Frame 9
"www.mygames.co.uk"Symbol 504 MovieClip Frame 10
"www.flashgames.ru"Symbol 504 MovieClip Frame 11
"www.game.co.in"Symbol 504 MovieClip Frame 12
"www.games.co.id"Symbol 504 MovieClip Frame 13
"www.minigry.pl"Symbol 504 MovieClip Frame 14
"www.asoyun.com"Symbol 504 MovieClip Frame 15
"www.game.com.my"Symbol 504 MovieClip Frame 16
"www.gamesgames.com"Symbol 504 MovieClip Frame 17
"www.spelletjes.nl"Symbol 504 MovieClip Frame 18
"www.jeux.fr"Symbol 504 MovieClip Frame 19
"www.jetztspielen.de"Symbol 504 MovieClip Frame 20
"www.gry.pl"Symbol 504 MovieClip Frame 21
"www.spela.se"Symbol 504 MovieClip Frame 22
"www.gioco.it"Symbol 504 MovieClip Frame 23
"www.juegos.com"Symbol 504 MovieClip Frame 24
"www.ojogos.com.br"Symbol 504 MovieClip Frame 25
"www.ourgames.ru"Symbol 504 MovieClip Frame 26
"www.games.co.uk"Symbol 504 MovieClip Frame 27
"www.oyunlar123.com"Symbol 504 MovieClip Frame 28
"www.girlsgogames.com"Symbol 504 MovieClip Frame 29
"www.girlsgogames.nl"Symbol 504 MovieClip Frame 30
"www.girlsgogames.fr"Symbol 504 MovieClip Frame 31
"www.girlsgogames.es"Symbol 504 MovieClip Frame 32
"www.girlsgogames.de"Symbol 504 MovieClip Frame 33
"www.girlsgogames.pl"Symbol 504 MovieClip Frame 34
"www.girlsgogames.se"Symbol 504 MovieClip Frame 35
"www.juegosdechicas.com"Symbol 504 MovieClip Frame 36
"www.girlsgogames.it"Symbol 504 MovieClip Frame 37
"www.girlsgogames.co.uk"Symbol 504 MovieClip Frame 38
"www.girlsgogames.com.br"Symbol 504 MovieClip Frame 39
"www.girlsgogames.ru"Symbol 504 MovieClip Frame 40
"www.girlsgogames.in"Symbol 504 MovieClip Frame 41
"www.girlsgogamestr.com"Symbol 504 MovieClip Frame 42
"www.ojogos.pt"Symbol 504 MovieClip Frame 43
"www.laro.com.ph"Symbol 504 MovieClip Frame 44
"www.egames.jp"Symbol 504 MovieClip Frame 45
"www.a10.com"Symbol 504 MovieClip Frame 46
"www.dailygame.com"Symbol 504 MovieClip Frame 47
"www.agame.co.uk"Symbol 504 MovieClip Frame 48
"www.zapapa.com"Symbol 504 MovieClip Frame 49
"www.juegos.mx"Symbol 504 MovieClip Frame 50
"www.juegos.com.ar"Symbol 504 MovieClip Frame 51
"www.juegosdechicas.com.ar"Symbol 504 MovieClip Frame 52
"www.juegosdechicas.mx"Symbol 504 MovieClip Frame 53
"www.zapapa.nl"Symbol 504 MovieClip Frame 54
"pp"Symbol 548 MovieClip {export_fla.mainmenu_199} [export_fla.mainmenu_199] Frame 270
"start"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 1
"loop"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 4
"end"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 14
"remove"Symbol 619 MovieClip {export_fla.scoreEff1_12} [export_fla.scoreEff1_12] Frame 19
"normal"Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232] Frame 1
"over"Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232] Frame 2
"down"Symbol 680 MovieClip {export_fla.btn_start_232} [export_fla.btn_start_232] Frame 3
"normal"Symbol 752 MovieClip Frame 1
"over"Symbol 752 MovieClip Frame 2
"down"Symbol 752 MovieClip Frame 3
"normal"Symbol 754 MovieClip Frame 1
"over"Symbol 754 MovieClip Frame 2
"down"Symbol 754 MovieClip Frame 3
"br"Symbol 967 MovieClip Frame 1
"nl"Symbol 967 MovieClip Frame 2
"cn"Symbol 967 MovieClip Frame 3
"de"Symbol 967 MovieClip Frame 4
"es"Symbol 967 MovieClip Frame 5
"fr"Symbol 967 MovieClip Frame 6
"in"Symbol 967 MovieClip Frame 7
"it"Symbol 967 MovieClip Frame 8
"jp"Symbol 967 MovieClip Frame 9
"my"Symbol 967 MovieClip Frame 10
"ph"Symbol 967 MovieClip Frame 11
"pl"Symbol 967 MovieClip Frame 12
"pt"Symbol 967 MovieClip Frame 13
"ru"Symbol 967 MovieClip Frame 14
"se"Symbol 967 MovieClip Frame 15
"tr"Symbol 967 MovieClip Frame 16
"en_uk"Symbol 967 MovieClip Frame 17
"en_us"Symbol 967 MovieClip Frame 18
"id"Symbol 967 MovieClip Frame 19
"ar"Symbol 967 MovieClip Frame 20
"mx"Symbol 967 MovieClip Frame 21
"arg"Symbol 967 MovieClip Frame 22
"br"Symbol 991 MovieClip Frame 1
"nl"Symbol 991 MovieClip Frame 2
"cn"Symbol 991 MovieClip Frame 3
"de"Symbol 991 MovieClip Frame 4
"es"Symbol 991 MovieClip Frame 5
"fr"Symbol 991 MovieClip Frame 6
"in"Symbol 991 MovieClip Frame 7
"it"Symbol 991 MovieClip Frame 8
"jp"Symbol 991 MovieClip Frame 9
"my"Symbol 991 MovieClip Frame 10
"ph"Symbol 991 MovieClip Frame 11
"pl"Symbol 991 MovieClip Frame 12
"pt"Symbol 991 MovieClip Frame 13
"ru"Symbol 991 MovieClip Frame 14
"se"Symbol 991 MovieClip Frame 15
"tr"Symbol 991 MovieClip Frame 16
"en_uk"Symbol 991 MovieClip Frame 17
"en_us"Symbol 991 MovieClip Frame 18
"id"Symbol 991 MovieClip Frame 19
"ar"Symbol 991 MovieClip Frame 20
"mx"Symbol 991 MovieClip Frame 21
"arg"Symbol 991 MovieClip Frame 22
"br"Symbol 1017 MovieClip Frame 1
"nl"Symbol 1017 MovieClip Frame 2
"cn"Symbol 1017 MovieClip Frame 3
"de"Symbol 1017 MovieClip Frame 4
"es"Symbol 1017 MovieClip Frame 5
"fr"Symbol 1017 MovieClip Frame 6
"in"Symbol 1017 MovieClip Frame 7
"it"Symbol 1017 MovieClip Frame 8
"jp"Symbol 1017 MovieClip Frame 9
"my"Symbol 1017 MovieClip Frame 10
"ph"Symbol 1017 MovieClip Frame 11
"pl"Symbol 1017 MovieClip Frame 12
"pt"Symbol 1017 MovieClip Frame 13
"ru"Symbol 1017 MovieClip Frame 14
"se"Symbol 1017 MovieClip Frame 15
"tr"Symbol 1017 MovieClip Frame 16
"en_uk"Symbol 1017 MovieClip Frame 17
"en_us"Symbol 1017 MovieClip Frame 18
"id"Symbol 1017 MovieClip Frame 19
"ar"Symbol 1017 MovieClip Frame 20
"mx"Symbol 1017 MovieClip Frame 21
"arg"Symbol 1017 MovieClip Frame 22
"best"Symbol 1030 MovieClip Frame 1
"high"Symbol 1030 MovieClip Frame 2
"medium"Symbol 1030 MovieClip Frame 3
"low"Symbol 1030 MovieClip Frame 4
"normal"Symbol 1040 MovieClip Frame 1
"over"Symbol 1040 MovieClip Frame 2
"down"Symbol 1040 MovieClip Frame 3
"normal"Symbol 1043 MovieClip Frame 1
"over"Symbol 1043 MovieClip Frame 2
"down"Symbol 1043 MovieClip Frame 3
"normal"Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1] Frame 1
"over"Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1] Frame 2
"down"Symbol 1058 MovieClip {MoreGamesLogo1} [MoreGamesLogo1] Frame 3
"normal"Symbol 1203 MovieClip Frame 1
"over"Symbol 1203 MovieClip Frame 2
"down"Symbol 1203 MovieClip Frame 3
"normal"Symbol 1226 MovieClip Frame 1
"over"Symbol 1226 MovieClip Frame 2
"down"Symbol 1226 MovieClip Frame 3
"normal"Symbol 1227 MovieClip Frame 1
"over"Symbol 1227 MovieClip Frame 2
"down"Symbol 1227 MovieClip Frame 3
"normal"Symbol 1258 MovieClip {export_fla.btn_startgame_193} [export_fla.btn_startgame_193] Frame 1
"over"Symbol 1258 MovieClip {export_fla.btn_startgame_193} [export_fla.btn_startgame_193] Frame 2
"down"Symbol 1258 MovieClip {export_fla.btn_startgame_193} [export_fla.btn_startgame_193] Frame 3
"br"Symbol 1281 MovieClip Frame 1
"nl"Symbol 1281 MovieClip Frame 2
"cn"Symbol 1281 MovieClip Frame 3
"de"Symbol 1281 MovieClip Frame 4
"es"Symbol 1281 MovieClip Frame 5
"fr"Symbol 1281 MovieClip Frame 6
"in"Symbol 1281 MovieClip Frame 7
"it"Symbol 1281 MovieClip Frame 8
"jp"Symbol 1281 MovieClip Frame 9
"my"Symbol 1281 MovieClip Frame 10
"ph"Symbol 1281 MovieClip Frame 11
"pl"Symbol 1281 MovieClip Frame 12
"pt"Symbol 1281 MovieClip Frame 13
"ru"Symbol 1281 MovieClip Frame 14
"se"Symbol 1281 MovieClip Frame 15
"tr"Symbol 1281 MovieClip Frame 16
"en_uk"Symbol 1281 MovieClip Frame 17
"en_us"Symbol 1281 MovieClip Frame 18
"id"Symbol 1281 MovieClip Frame 19
"ar"Symbol 1281 MovieClip Frame 20
"mx"Symbol 1281 MovieClip Frame 21
"arg"Symbol 1281 MovieClip Frame 22
"br"Symbol 1304 MovieClip Frame 1
"nl"Symbol 1304 MovieClip Frame 2
"cn"Symbol 1304 MovieClip Frame 3
"de"Symbol 1304 MovieClip Frame 4
"es"Symbol 1304 MovieClip Frame 5
"fr"Symbol 1304 MovieClip Frame 6
"in"Symbol 1304 MovieClip Frame 7
"it"Symbol 1304 MovieClip Frame 8
"jp"Symbol 1304 MovieClip Frame 9
"my"Symbol 1304 MovieClip Frame 10
"ph"Symbol 1304 MovieClip Frame 11
"pl"Symbol 1304 MovieClip Frame 12
"pt"Symbol 1304 MovieClip Frame 13
"ru"Symbol 1304 MovieClip Frame 14
"se"Symbol 1304 MovieClip Frame 15
"tr"Symbol 1304 MovieClip Frame 16
"en_uk"Symbol 1304 MovieClip Frame 17
"en_us"Symbol 1304 MovieClip Frame 18
"id"Symbol 1304 MovieClip Frame 19
"ar"Symbol 1304 MovieClip Frame 20
"mx"Symbol 1304 MovieClip Frame 21
"arg"Symbol 1304 MovieClip Frame 22
"br"Symbol 1330 MovieClip Frame 1
"nl"Symbol 1330 MovieClip Frame 2
"cn"Symbol 1330 MovieClip Frame 3
"de"Symbol 1330 MovieClip Frame 4
"es"Symbol 1330 MovieClip Frame 5
"fr"Symbol 1330 MovieClip Frame 6
"in"Symbol 1330 MovieClip Frame 7
"it"Symbol 1330 MovieClip Frame 8
"jp"Symbol 1330 MovieClip Frame 9
"my"Symbol 1330 MovieClip Frame 10
"ph"Symbol 1330 MovieClip Frame 11
"pl"Symbol 1330 MovieClip Frame 12
"pt"Symbol 1330 MovieClip Frame 13
"ru"Symbol 1330 MovieClip Frame 14
"se"Symbol 1330 MovieClip Frame 15
"tr"Symbol 1330 MovieClip Frame 16
"en_uk"Symbol 1330 MovieClip Frame 17
"en_us"Symbol 1330 MovieClip Frame 18
"id"Symbol 1330 MovieClip Frame 19
"ar"Symbol 1330 MovieClip Frame 20
"mx"Symbol 1330 MovieClip Frame 21
"arg"Symbol 1330 MovieClip Frame 22
"normal"Symbol 1351 MovieClip Frame 1
"over"Symbol 1351 MovieClip Frame 2
"down"Symbol 1351 MovieClip Frame 3
"normal"Symbol 1369 MovieClip Frame 1
"over"Symbol 1369 MovieClip Frame 2
"down"Symbol 1369 MovieClip Frame 3




http://swfchan.com/24/115894/info.shtml
Created: 9/3 -2019 06:41:23 Last modified: 9/3 -2019 06:41:23 Server time: 25/04 -2024 19:57:44