/**
* Copyright Thy ( http://wonderfl.net/user/Thy )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/g6Xa
*/
package
{
import flash.display.Bitmap;
import flash.display.BlendMode;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
//
/**
* ...
* @author Thi
*/
public class Main extends Sprite
{
//[Embed(source = '../lib/fundo2.jpg')]
//private var Fundo:Class
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private var pause:SmartPause
private var topic:Topicos
private var player:MusicPlayer
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//
//stage.addChild(new Fundo() )
var fundo:String = "http://thethi.webs.com/fundo2.jpg"
var back:background = new background(stage, fundo, 1)
pause = new SmartPause(stage,.2,40)
pause.start()
//
var links:Array =
[
["Labs",
["blablabla" , "www.wonderfl.net"]
],
["Blah",
["lalala", "www.wonderfl.net"]
],
["Nah",
["_|_", "www.google.com"]
]
]
topic = new Topicos(stage, links, 399, 50)
stage.addChild(topic)
var musicas:Array =
[
"http://thethi.webs.com/Entrosa8.swf",
"http://thethi.webs.com/m/03%20Plan%20B%20-%20She%20Said.mp3",
"http://thethi.webs.com/m/39%20Glee%20Cast%20-%20It's%20My%20Life-Confessions%20Pt.II.mp3",
"http://thethi.webs.com/m/23%20Black%20Eyes%20Peas%20-%20Rock%20That%20Body.mp3",
"http://thethi.webs.com/m/07%20Sugababes%20-%20Wear%20My%20Kiss.mp3",
"http://thethi.webs.com/m/09%20Inna%20-%20Hot.mp3",
"http://thethi.webs.com/m/22%20Boyzone%20-%20Gave%20It%20All%20Away.mp3",
"http://thethi.webs.com/m/03%20Rihanna%20-%20Rude%20Boy.mp3",
"http://thethi.webs.com/m/04%20Ellie%20Goulding%20-%20Starry%20Eyed.mp3",
"http://thethi.webs.com/m/12%20Chiddy%20Bang%20-%20The%20Opposite%20Of%20Adults.mp3",
"http://thethi.webs.com/m/29%20Alphabeat%20-%20Hole%20In%20My%20Heart.mp3",
"http://thethi.webs.com/m/Starstrukk_.mp3",
"http://thethi.webs.com/m/All%20the%20Right%20Moves_.mp3",
"http://thethi.webs.com/m/3%20Words_.mp3",
"http://thethi.webs.com/m/Im%20Not%20Alone_.mp3",
"http://thethi.webs.com/m/If%20We%20Ever%20Meet%20Again.mp3"
]
player = new MusicPlayer(stage, musicas, 399, 25)
player.y = 50
stage.addChild(player)
//player.blendMode = BlendMode.MULTIPLY
}
}
}
//------------ ------------- -------------- ----------------- ---------------- ----------------------------- ------------------------------
import flash.display.Loader;
import flash.display.Stage;
import flash.events.Event;
import flash.net.URLRequest;
/**
* ...
* @author Thi
*/
class background
{
private var loader:Loader = new Loader()
private var stage:Stage
private var index:int
private var request:URLRequest
public function background(stage:Stage, request:String, index:int)
{
this.index = index
this.stage = stage
this.request = new URLRequest(request)
loader.load(this.request)
request = null
this.request = null
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete)
}
private function complete(e:Event):void
{
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, complete)
stage.addChildAt(loader.content, index)
index = 0
loader = null
}
}
//------------ ------------- -------------- ----------------- ---------------- ----------------------------- ------------------------------
import flash.display.Stage
import flash.events.Event;
import flash.events.MouseEvent;
/**
* ...
* @author Thi
*/
class SmartPause //extends Object
{
public var min:Number
public var max:Number
private var stage:Stage
private var event:int = 0
public function SmartPause(stage:Stage = null, a:Number = 0,b:Number = 40)
{
this.stage = stage
min = a
max = b
stage.frameRate = min
}
//
public function start():void
{
event = 1
trace(stage)
stage.addEventListener(MouseEvent.MOUSE_MOVE, In)
}
public function stop():void
{
if (event == 1)
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, In)
}
if (event == 2)
{
stage.removeEventListener(Event.MOUSE_LEAVE, Out)
}
event = 0
}
//
private function In(e:MouseEvent = null):void
{
event = 2
stage.frameRate = max
stage.removeEventListener(MouseEvent.MOUSE_MOVE, In)
stage.addEventListener(Event.MOUSE_LEAVE, Out)
}
private function Out(e:Event = null):void
{
event = 1
stage.frameRate = min
stage.addEventListener(MouseEvent.MOUSE_MOVE, In)
stage.removeEventListener(Event.MOUSE_LEAVE, Out)
}
}
//------------ ------------- -------------- ----------------- ---------------- ----------------------------- ------------------------------
import flash.display.Graphics;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.ByteArray;
/**
* ...
* @author Thi
*/
class MusicPlayer extends Sprite
{
private var st:Stage
public var links:Array
private var link_entrosa:String
public var W:Number, H:Number
public var format:TextFormat
public function MusicPlayer(stage:Stage = null, links:Array = null, W:Number = 399, H:Number = 49, format:TextFormat = null)
{
st = stage
link_entrosa = links[0]
links.splice(0,1)
this.links = links
trace(links)
this.W = W
this.H = H
if (format == null)
{
this.format = new TextFormat("Arial", 12,0)
} else {
this.format = format
}
// função que desenha, escreve e adiciona listeners
start()
}
public function start():void
{
this.addChild(Tinf)
this.addChild(linha)
loader()
backPlaying.graphics.beginFill(0, 0)
backPlaying.graphics.drawRect(10,0,128,H*.5)
backPlaying.addEventListener(MouseEvent.CLICK, click)
this.addChild(backPlaying)
trace(this)
}
private var carregou:Boolean
private var Entrosa:Loader = new Loader()
private var carregadorCarregado:Boolean = false
private var objEntrosa:Object
private var primeiroID3:Boolean = false
private var id3Pego:Boolean
private function loader():void
{
trace("vai começar a carregar o entrosa")
Entrosa.load(new URLRequest(link_entrosa))
Entrosa.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loader_progress)
Entrosa.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete)
}
private function loader_progress(e:ProgressEvent):void
{
trace("tá carregano o filho da puta", 100*e.bytesLoaded/e.bytesTotal)
}
private function loader_complete(e:Event):void
{
trace("FINALMENTE CARREGOU O LOADER")
objEntrosa = Object(Entrosa.content)
trace("AGORA VAI COMEÇAR UMA NOVA MÚSICA")
newMusic()
}
private var som:Sound = new Sound()
private var somC:SoundChannel = new SoundChannel()
private var link:int = 0
private function newMusic():void
{
trace("NewMusic")
this.removeChild(linha)
linha = null
linha = new Sprite()
this.addChild(linha)
carregou = false
position = 0
trace("link ants", link)
link = link >= links.length ? link - links.length : link < 0? links.length + link : link
trace("link dpois", link)
objEntrosa.link = links[link]
objEntrosa.loadLink()
som = null
som = objEntrosa.som
//somC = som.play()
som.addEventListener(Event.COMPLETE, Lcomp)
som.addEventListener(ProgressEvent.PROGRESS, Lprog)
//Listener pra pegar e mostrar o ID3 quando este 'ficar pronto'
this.addEventListener(Event.ENTER_FRAME, id3)
this.addEventListener(Event.ENTER_FRAME, linhaLoop)
}
private function Lcomp(e:Event):void
{
trace("COMPLETOU o Loading")
som.removeEventListener(Event.COMPLETE, Lcomp)
som.removeEventListener(ProgressEvent.PROGRESS, Lprog)
//som.removeEventListener(IOErrorEvent.IO_ERROR, Lerro)
carregou = true
}
private var loading:Number
private function Lprog(e:ProgressEvent):void
{
//trace("progressando", e.bytesLoaded*100/e.bytesTotal)
//mostra o loading bar
loading = 128 * e.bytesLoaded / e.bytesTotal
//algumas coisas
carregou = false
}
public var Tinf:TextField = new TextField()
private function id3(e:Event = null):void
{
trace("verificou se", objEntrosa.id3Pronto,"&&", !id3Pego)
if (objEntrosa.id3Pronto && !id3Pego)
{
this.removeChild(Tinf)
Tinf = null
Tinf = new TextField()
Tinf.defaultTextFormat = format
Tinf.autoSize = TextFieldAutoSize.LEFT
this.addChild(Tinf)
trace("FINALMETE O ID3 FICO PRONTO !")
Tinf.text = (objEntrosa.id3.songName == null ? "?" : objEntrosa.id3.songName) + " - " + (objEntrosa.id3.artist == null ? "?" : objEntrosa.id3.artist)
Tinf.textColor = 0x7F7F7F
Tinf.alpha = .8
Tinf.x = 128 + 20
id3Pego = true
butons()
if (play)
{
somC = som.play()
this.addEventListener(Event.ENTER_FRAME, soundComplete)
}
//remove o listener desta função
this.removeEventListener(Event.ENTER_FRAME, id3)
}
}
private var b0:Sprite = new Sprite(), b1:Sprite = new Sprite(), b2:Sprite = new Sprite()
private var play:Boolean
private function butons():void
{
b0.graphics.clear()
b1.graphics.clear()
b2.graphics.clear()
b0 = new Sprite()
b1 = new Sprite()
b2 = new Sprite()
var G:Graphics = b0.graphics
with (G)
{
lineStyle(1, 0)
beginFill(0x7F7F7F, .5)
moveTo(5, 0)
lineTo(0, 3)
lineTo(5, 6)
lineTo(5, 0)
moveTo(10, 0)
lineTo(5, 3)
lineTo(10, 6)
lineTo(10, 0)
endFill()
}
G = b1.graphics
if (play)
{
trace("EH PLAY")
with (G)
{
lineStyle(1, 0)
beginFill(0x7F7F7F, .5)
drawRect(0, 0, 3, 6)
drawRect(5, 0, 3, 6)
endFill()
}
} else {
trace("NAUM EH PLAY")
with (G)
{
lineStyle(1, 0)
beginFill(0x7F7F7F, .5)
lineTo(9, 3)
lineTo(0, 6)
lineTo(0, 0)
endFill()
}
}
G = b2.graphics
with (G)
{
lineStyle(1, 0)
beginFill(0x7F7F7F, .5)
lineTo(0, 6)
lineTo(5, 3)
lineTo(0, 0)
moveTo(5, 0)
lineTo(5, 6)
lineTo(10, 3)
lineTo(5, 0)
endFill()
}
b0.x = 0 + 44 + 10
b1.x = 15 + 44 + 10
b2.x = 29 + 44 + 10
b0.y = b1.y = b2.y = H * .5
b0.addEventListener(MouseEvent.CLICK, bClick)
b1.addEventListener(MouseEvent.CLICK, bClick)
b2.addEventListener(MouseEvent.CLICK, bClick)
this.addChild(b0)
this.addChild(b1)
this.addChild(b2)
}
private function soundComplete(e:Event=null):void
{
if (playing > 127.8)
{
this.removeEventListener(Event.ENTER_FRAME, soundComplete)
trace("POHAAAAAAAAAAAAAAA_______________")
somC.stop()
id3Pego = false
++link
newMusic()
}
}
private var linha:Sprite = new Sprite()
private var ba:ByteArray
private var playing:Number
private var length:Number
private function linhaLoop(e:Event = null):void
{
var G:Graphics = linha.graphics
with (G)
{
clear()
lineStyle(1, 0, .2)
}
if (play)
{
length = som.length / (loading/128)
playing = 128 * somC.position / length
objEntrosa.getByteArray()
ba = objEntrosa.ba
var num:Number = 0
var i:int = 0
while (i < 128)
{
if (i <= playing)
{
//played
G.lineStyle(1, 0xFF0000, .9)
} else if (i >= loading)
{
//not loaded
G.lineStyle(.5, 0x000000, .5)
} else {
//loaded
G.lineStyle(1, 0x000000, .9)
}
num = ba.readFloat()
G.lineTo(i, - num*H*.25)
++i
}
G.lineTo(128, 0)
} else {
with (G)
{
lineTo(loading, 0)
lineStyle(1,0, .1)
lineTo(128,0)
}
}
/*
with (G)
{
lineTo(128,0)
lineTo(128, H * .65)
lineTo(0, H * .65)
lineTo(0, 0)
}
*/
linha.x = 10
linha.y = H*.25
}
private var position:Number = 0
private function bClick(e:MouseEvent):void
{
var target:Sprite = Sprite(e.target)
trace("CLICK", target)
if (target == b0)
{
this.removeEventListener(Event.ENTER_FRAME, soundComplete)
somC.stop()
if (!carregou)
{
som.close()
}
id3Pego = false
--link
newMusic()
} else if (target == b1)
{
if (play)
{
play = false
position = somC.position
somC.stop()
this.removeEventListener(Event.ENTER_FRAME, soundComplete)
} else {
play = true
somC = som.play(position)
this.addEventListener(Event.ENTER_FRAME, soundComplete)
}
butons()
} else if (target == b2)
{
this.removeEventListener(Event.ENTER_FRAME, soundComplete)
somC.stop()
id3Pego = false
if (!carregou)
{
som.close()
}
++link
newMusic()
}
}
private var backPlaying:Sprite = new Sprite()
private function click(e:MouseEvent = null):void
{
//var Y:Number = mouseY
var X:Number = mouseX
position = (mouseX - 10) * length / 128
if (position <= som.length)
{
somC.stop()
somC = som.play(position)
trace("position > length", position,">",length)
}
}
}
//------------ ------------- -------------- ----------------- ---------------- ----------------------------- ------------------------------
import flash.display.BlendMode;
import flash.display.Graphics;
//import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Stage
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL
//import flash.system.Security;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
/**
* ...
* @author Thi
*/
class Topicos extends Sprite
{
//Security.allowDomain("*")
//Security.LOCAL_TRUSTED
private var st:Stage
public var links:Array
public var /*X:Number, Y:Number,*/ W:Number, H:Number
public var format:TextFormat
//função principal.
public function Topicos(stage:Stage = null, links:Array = null, W:Number = 399, H:Number = 49, format:TextFormat = null)
{
// 1# o stage, será usado ara adicionar os listeners de movimento e click do mouse
// 2# os links, em certa organização de array, será usado para escrever os nomes dos menus, e seus links
// 3# a largura da máscara dos Textos (cuidado! não é a largura desse Sprite) (lembre: essa classe é um sprite!)
// 4# A altura da máscara dos textos
// 5# o TextFormat dos textos. Ou você predefine um, ou um será predefinido aqui na classe mesmo.
st = stage
this.links = links
this.W = W
this.H = H
if (format == null)
{
this.format = new TextFormat("Arial", 16,0)
} else {
this.format = format
}
// função que desenha, escreve e adiciona listeners
start()
}
// Máscaras invisíveis pros textos
private var S1:Sprite, S2:Sprite
// lugar onde os textos ficarão (um conteiner)
private var TS1:Sprite, TS2:Sprite
// variável que guardará os TextFields
private var TP1:Vector.<Number>, TP2:Vector.<Number>
public function start():void
{
//loader()
//desenha os menus (invisíveis; máscaras pros textos)
desenhar()
//desenha o menú de cima
escrever()
//adiciona os listeners
listeners()
}
//
/*private var objLinker:Object
private var Linker:Loader
private function loader():void
{
Linker = new Loader()
Linker.load(new URLRequest("http://thethi.webs.com/Linker2.swf"))
Linker.contentLoaderInfo.addEventListener(Event.COMPLETE, complete)
}*/
/*private function complete(e:Event = null):void
{
trace("completou")
objLinker = Object (Linker.content)
}*/
//desenha os dois Menus. Sserão invisíveis, apenas máscaras.
private function desenhar():void
{
S1 = S2 = null
S1 = new Sprite()
S2 = new Sprite()
this.addChild(S1)
this.addChild(S2)
var G:Graphics = S1.graphics
with (G)
{
clear()
beginFill(0xFFFFFF)
drawRect(this.x, this.y, W, H * .5 - 1)
endFill()
}
G = S2.graphics
with (G)
{
clear()
beginFill(0xFFFFFF)
drawRect(this.x, this.y + H * .5, W, H * .5)
endFill()
}
}
//valor da margem entre os textos
//também são usadas posteriormente pra saber a largura total dos textos
private var margem:Number, margem2:Number
//função que escreve os textos do menu de cima
private function escrever():void
{
//se livra das coisas antigas
if (TS1 != null)
{
while (TS1.numChildren > 0)
{
TS1.removeChildAt(0)
}
}
TS1 = TS2 = null
TP1 = TP2 = null
//prepara algumas vars
var T:TextField
var i:int = 0
var j:int = links.length
TS1 = new Sprite()
TS2 = new Sprite()
TP1 = new Vector.<Number>(j * 2)
//margem pro primeiro texto
margem = 30
//um loop, que ficará adicionando textos, ao sprite 'que tem os textos'
while (i < j)
{
//cria e arruma o texto
T = new TextField()
T.defaultTextFormat = format
T.autoSize = TextFieldAutoSize.LEFT
T.type = "dynamic"
T.selectable = false
T.x = margem
T.text = String(links [int(i)] [0])
T.blendMode = BlendMode.OVERLAY
//adiciona a posição 'X' do texto
TP1[int(i * 2)] = margem - 30
//ajusta a margem que cada texto tem com o próximo
//adiciona ao sprite que guarda os textos (do menu de cima)
TS1.addChild(T)
//adiciona a posição 'X + Lagura' do texto
//TP1[int(i * 2 + 1)] = margem
//passa pro próximo texto
if (i + 1 < j)
{
margem += T.width + 15
//adiciona um separador
T = new TextField()
T.defaultTextFormat = format
T.autoSize = TextFieldAutoSize.LEFT
T.type = "dynamic"
T.selectable = false
T.x = margem
T.text = "|"
TS1.addChild(T)
T.blendMode = BlendMode.OVERLAY
//adiciona a posição 'X + Lagura' do texto
TP1[int(i * 2 + 1)] = margem
margem += 25
} else {
trace(TP1, i, T.text)
margem += T.width
margem = margem < W? W : margem
TP1[int(i * 2 + 1)] = margem
}
++i
}
//se livra do texto, que estava sendo usado como molde para criar textos
//eu posso me livrar deste
T = null
//mostra o grupo de textos neste Sprite (nesta classe)
this.addChild(TS1)
//arruma máscaras
TS1.mask = S1
TS2.mask = S2
}
//função que escreve os textos do menu de baixo
private function escrever2():void
{
//me livro das coisas que podem ser anteriores
if (TS2 != null)
{
while (TS2.numChildren > 0)
{
TS2.removeChildAt(0)
}
}
TS2 = null
TP2 = null
//preparo vars
var T:TextField
var i:int = 1
var j:int = links[int(item)].length
trace("j",j)
TS2 = new Sprite()
TP2 = new Vector.<Number>()//(j-2) * 2 )
//margem do 1° texto
margem2 = 30
//função que ficará criando textos, adicionando ao 'grupão de textos', e indexando suas propriedades
while (i < j)
{
//cria e arruma o texto
T = new TextField()
T.defaultTextFormat = format
T.autoSize = TextFieldAutoSize.LEFT
T.type = "dynamic"
T.selectable = false
T.x = margem2
T.text = String(links [item] [i] [0])
T.blendMode = BlendMode.OVERLAY
//adiciona a posição 'X' do texto
trace("HM",TP2.length, int((i-1) * 2), "=", margem2 - 30)
TP2[int((i-1) * 2)] = margem2 - 30
//ajusta a margem que cada texto tem com o próximo
//adiciona ao sprite que guarda os textos (do menu de cima)
TS2.addChild(T)
//adiciona a posição 'X + Lagura' do texto
//TP1[int(i * 2 + 1)] = margem
//passa pro próximo texto
if (i + 1 < j)
{
margem2 += T.width + 15
//adiciona um separador
T = new TextField()
T.defaultTextFormat = format
T.autoSize = TextFieldAutoSize.LEFT
T.type = "dynamic"
T.selectable = false
T.x = margem2
T.text = "|"
TS2.addChild(T)
T.blendMode = BlendMode.OVERLAY
//adiciona a posição 'X + Lagura' do texto
TP2[int((i - 1) * 2 + 1)] = margem2
trace(int((i - 1) * 2 + 1), "=",margem2)
margem2 += 25
} else {
margem2 += T.width
margem2 = margem2 < W? W : margem2
trace(TP2,i,T.text)
TP2[int((i - 1) * 2 + 1)] = margem2
trace(int((i - 1) * 2 + 1), "=",margem2, "fim", TP2[int((i - 1) * 2 + 1)])
}
++i
}
trace(TP2)
//me livro das coisas que não serão usadas
T = null
//mostro o 'grupão de textos' (de baixo) nesse sprite (esta classe)
this.addChild(TS2)
//arrumo a posição e máscara
TS2.y = H*.5
TS2.mask = S2
}
//listeners ---------------------------------------------------------------------------------------
// adicionar dois listeners
private function listeners():void
{
//listener para mudar a posição dos textos
st.addEventListener(MouseEvent.MOUSE_MOVE, mm)
//listener para o click, tanto para abrir menus ou links
st.addEventListener(MouseEvent.CLICK, cl)
}
// funções dos listeners --------------------------------------------------------------------------
private var mx:Number, my:Number
//evento do movimento do mouse
private function mm(e:MouseEvent = null):void
{
//vê a posição do mouse
mx = mouseX
my = mouseY
//
var i:int, j:int, ja:Boolean
//ve se o mouse está sobre os menus de cima ou nos de baixo
if (my >= 0 && my <= H * .5 && mx >= 0 && mx <= W)
{
// tá nos menus de cima
margem = margem < W? W : margem
//arruma a posição dos textos
TS1.x = - (mouseX / W) * (margem - W)
//
i = 0
j = TP1.length
ja = false
while (i < j)
{
TextField(TS1.getChildAt(i)).blendMode = BlendMode.OVERLAY
if (mx > TP1[int(i)] && mx < TP1[int(i+1)] && !ja)
{
TextField(TS1.getChildAt(i)).blendMode = BlendMode.NORMAL
ja = true
}
++i;++i;
}
} else if (TP2 != null && my >= 0 && my <= H && mx >= 0 && mx <= W)
{
// tá nos menus de baixo
margem2 = margem2 < W? W : margem2
//arruma a posição dos textos
TS2.x = - (mouseX / W) * (margem2 - W)
mx -= TS2.x
trace("mx", mx)
//
//
i = 0
j = TP2.length
ja = false
trace(j)
while (i < j)
{
//trace("fez", i,TS2.numChildren, j)
TextField(TS2.getChildAt(i)).blendMode = BlendMode.OVERLAY
if (mx > TP2[int(i)] && mx < TP2[int(i+1)] && !ja)
{
trace(i, TP2[int(i)], TP2[int(i+1)])
TextField(TS2.getChildAt(i)).blendMode = BlendMode.NORMAL
ja = true
}
++i;++i;
}
}
}
//valor que guarda o index do 'menu' e do 'link', respectivamente
private var item:int, item2:int
//função do click
private function cl(e:MouseEvent = null):void
{
//pega valores Y do mouse e prepara vars
mx = mouseX
my = mouseY
var i:int = 0, j:int
//vê se clicou no menu de cima ou de baixo
if (my >= 0 && my <= H * .5 && mx >= 0 && mx <= W)
{
// tá nos menus de cima
// vê em 'quem' clicou
mx = (mouseX / W) * margem
item = 0
j = TP1.length
while (i < j)
{
if (mx > TP1[int(i)] && mx < TP1[int(i+1)])
{
item = i * .5
i = j
}
++i;++i;
}
// aqui no final desta função, pegou-se o index do 'menu de cima' que foi clicado
//agora escreverá o menu de baixo, segundo o index 'item'
escrever2()
} else if (TP2 != null && my >= 0 && my <= H && mx >= 0 && mx <= W)
{
// tá nos menus de baixo
mx = (mouseX / W) * margem2
item2 = 0
j = TP2.length
while (i < j)
{
if (mx > TP2[int(i)] && mx < TP2[int(i+1)])
{
//pega o index do 'menu de baixo' que foi clicado
item2 = i * .5 + 1
i = j
/*objLinker.link = links [ int(item) ] [item2] [1]
objLinker.navegar()*/
//e já carrega este link
var url:URLRequest = new URLRequest(links [int(item)] [item2] [1])
try
{
navigateToURL(url, "_blank")
} catch (e:Error)
{
trace("Merda, num foi", e.message);
}
trace("navego pra", url.url)
//var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');"; var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);"); navigateToURL(url, "_self");
}
++i;++i;
}
}
}
}