Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jeffex

Só pra quem é fera no xml+flash!

Recommended Posts

Estava olhando em alguns blogs e acabei encontrando uma disputa em xml+flash!!

 

Interessei-me bastante pelo conteudo, e só vi uma pessoa que conseguiu fazer o que o rapaz queria...

E gostaria de saber se tem alguem aqui tão fera quanto!!!

 

Bom estava assim: cada click que você dava em uma foto, ele mostraria a foto da mesma forma que esta nesse conteudo abaixo mas só que tinha um detalhe (digita automaticamente a descrição,e se você desse outro clique na foto sairia e acessava uma galeria no mesmo flash) de acordo com a foto e descrição!

 

Ficou show os mesmo efeito só que com esses eplementos...

 

Nunca vi desafio igual, e pensei se alguem no imaster seria capaz de refazer essa proeza!!!

 

XML

<?xml version="1.0" encoding="iso-8859-1"?>

<xml>

<images>

<image1 title="1.jpg" />

<image2 title="2.jpg" />

<image3 title="3.jpg" />

<image4 title="4.jpg" />

<image5 title="5.jpg" />

<image6 title="6.jpg" />

<image7 title="7.jpg" />

<image8 title="8.jpg" />

</images>

</xml>

 

 

FLASH

import flash.display.BitmapData;

import flash.geom.Matrix

 

var image_xml = new XML();

image_xml.ignoreWhite = true;

image_xml.load("images.xml")

 

var images_path = new Array();

 

var frames = 0

 

//XML load

 

image_xml.onLoad = function()

{

//get paths

for(i = 0; i < image_xml.firstChild.firstChild.childNod… i++)

{

_root.images_path = image_xml.firstChild.firstChild.childNod…

_root.createEmptyMovieClip("frames" + i, _root.getNextHighestDepth());

_root.MCloader.loadClip(_root.images… _root["frames" + i]);

 

}

 

}

 

 

//MCL

MCloader = new MovieClipLoader();

listener = new Object();

MCloader.addListener(listener);

 

listener.onLoadInit = function(target)

{

 

var bmd:BitmapData = new BitmapData(200,150);

 

var xscale = 200/target._width

var yscale = 150/target._height

 

var MT = new Matrix();

MT.scale(xscale, yscale)

 

bmd.draw(target, MT);

 

for(i = 0; i < 3; i++)

{

mc = _root.framesMC.attachMovie("frame", "frame" + _root.frames, _root.framesMC.getNextHighestDepth());

 

mc.createEmptyMovieClip("pic", 10);

mc.pic._x = -100

mc.pic._y = -75

mc.pic.attachBitmap(bmd, 1);

 

mc.x = Math.random() * 2000 - 1000

mc.y = Math.random() * 1600 - 800

mc.z = _root.frames * 1000

 

mc.onPress = _root.selectFrame

mc.Move = _root.moveFrames

 

_root.frames_array[_root.frames] = mc

 

_root.frames++

 

}

 

target.removeMovieClip();

 

}

 

//Star Code

 

//MC from where the MCs start to show up

this.createEmptyMovieClip("framesMC", 1);

framesMC._x = Stage.width/2;

framesMC._y = Stage.height/2;

 

var curX = 0;

var curY = 0;

var curZ = 0;

 

var selX = 0;

var selY = 0;

var selZ = 0;

 

 

var frames_array = new Array();

 

function selectFrame()

{

_root.selX = this.x

_root.selY = this.y

_root.selZ = this.z

 

 

}

framesMC.onEnterFrame = function()

{

_root.curX += (_root.selX - _root.curX)/5;

_root.curY += (_root.selY - _root.curY)/5;

_root.curZ += (_root.selZ - _root.curZ)/5;

/////////////////////////////////////

currentX = this._x; //Pega as coordenadas X atuais

currentY = this._y; //Pega as coordenadas Y atuais

_root._xmouse = _root.framesMC._x; //Pega as coordenadas X do framesMC

_root._ymouse = root.framesMC._y; //Pega as coordenadas X do framesMC

velocidade = 2.1;

 

if (currentX < _root._xmouse) { //Se currentX menor que _root._xmouse o framesMC esta a direita

this._x += velocidade;

}

if (currentX > _root._xmouse) { //Se currentX maior que _root._xmouse o framesMC esta a esquerda

this._x -= velocidade;

}

if (currentY < _root._ymouse) { //Se currentY menor que _root._ymouse o framesMC esta a abaixo

this._y += velocidade;

}

if (currentY > _root._ymouse) { //Se currentY maior que _root._ymouse o framesMC esta acima

this._y -= velocidade;

}

 

for (i = 0; i < _root.frames_array.length; i++)

{

_root.frames_array.Move();

}

 

}

function moveFrames()

{

var nX = this.x - _root.curX

var nY = this.y - _root.curY

var nZ = this.z - _root.curZ

 

 

if (nZ < 0)

{

this.z += 10000;

this.x = Math.random() * 2000 - 1000;

this.y = Math.random() * 1600 - 800;

nX = this.x - _root.curX

nY = this.y - _root.curY

nZ = this.z - _root.curZ

}

 

 

 

var ratio = 300/(300 + nZ);

this._alpha = ratio * 1000

this._x = nX * ratio;

this._y = nY * ratio;

 

 

this._xscale = this._yscale = 250 * ratio;

this.swapDepths(Math.round(-nZ));

}

//////////////////////////////////////

Compartilhar este post


Link para o post
Compartilhar em outros sites

... ou ainda melhor, talvez até em AS3, com mais recursos!

 

quem se esforça pode muito .

 

 

Dureza é ver alguém imaginar inocentemente que vai fazer continência com o chapéu alheio.

 

 

 

hahahahhh, sem chance!!! :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.