Ir para conteúdo

POWERED BY:

Arquivado

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

junior.c.e

Armazenar nome de movieclip com select e somar ao aplicar.

Recommended Posts

Fala galera eu mais uma vez pedindo socorro.

 

Bom é o seguinte tenho uma animação onde dentro de um movieclip existe vários objetos nomeados como mc0, mc1, m2,m3...

Estes objetos são coloridos ou preenchidos com algumas texturas da forma que o usuário desejar, basta clicar na textura deseja onde acontece um select e depois clicar no objeto para aplicar.

Bom galera preciso que quando escolher uma textura e aplicar em um objeto que mostres em um campo de texto dinâmico da seguinte forma:

Objeto1: Textura azul, Objeto2: textura preta , Objeto3: textura branca;

Ou seja, conforme ele ir escolhendo a textura e aplicando o campo de texto mostre qual o nome do objeto e a textura que ele recebeu. No entanto estes nomes não poderão vir da instancia nem dos objetos e nem das texturas.

Eu pensei em criar uma variável que recebe um nome quando clicar na textura azul, onde nela será armazenada o nome da textura tipo nome=”textura azul”.

E o mesmo aconteceria os objetos que ao clicar no objeto1 armazenaria o nome deste objeto tipo nameObj = “objeto1”, e depois no campo de texto seria exibido a soma dos dois tipo .

Campo.text= nome+nameObj;

Esta é apenas a idéia do que estou precisando porque a forma que mostrei não da certo já que são vários objetos e varias texturas informando seus nomes na mesma variável , de forma que estes nomes não irão somar e sim substituídos pelos últimos.

Pessoal tentei explicar da forma mais simples possível se alguém puder me ajudar fico muito grato.

Abraço Junior

 

Segue abaixo meu cod. Créditos (Rony Torres).

import flash.geom.ColorTransform;
import flash.geom.Transform;

var cores:Array = new Array("0x0000C0","0x00A060","0xFFFF60","0xFF0000","0x000000","0xFFFFFF");
var corSelect = "0xFFFFFF";
var totalObjetos = 4; //**************************
var increment = 10; //**************************
var corAnt:Array = new Array(); 
var objRem:Object; //***************************** Essa variável irá guardar o nome do último objeto clicado, pois quando você ir para o frame 30, do mc objetos, será necessário remover esse movieclip da tela, pois pode acontecer de ele ficar dando sopa.

//Area que alterei para o que você precisa======================================
var id_fig:Number; //variável irá armazenar o número final do nome do botão da textura escolhida

for (i = 0; i<cores.length; i++) {
pintaObj(_root.paleta["cor"+i], cores[i]);//aqui adicionei o mc "paleta" que é o movieclip pai dos mc botões de cores
_root.paleta["cor"+i].id = i;
_root.paleta["cor"+i].onPress = function() {
	corSelect = cores[this.id];
}
}

paleta.fig1.onPress = function() {//aqui adicionei o mc "paleta" que é o movieclip pai dos mc botões de texturas
corSelect = "";
id_fig = this._name.slice(this._name.length-1, this._name.length);//pego o último caracter do nome "fig1", ou seja, o nº 1
}
paleta.fig2.onPress = function() {
corSelect = "";
id_fig = this._name.slice(this._name.length-1, this._name.length);//pego o último caracter do nome "fig2", ou seja, o nº 2
}
//=========================================================================

//ESSA FUNÇÃO IRÁ UTILIZAR 2 PARÂMETROS QUE INDICAM O NÚMERO DO MC INICIAL E FINAL QUE ESTÃO DENTRO DO MC OBJETOS.
function activeObjetos(min, max) { //******************** 
for (j=min; j<max; j++) { //**************************
	_root.objetos["mc"+j].grade = false;
	_root.objetos["mc"+j].onPress = function() {
		this._parent.swapDepths(_root.getNextHighestDepth());
		if (corSelect != "") {
			if (!this.grade) {
				pintaObj(this, corSelect);
				corAnt.push(this);
				objRem = this; //**************************
			} else {
				removeMovieClip(this.container);
				this.grande =  false;
				pintaObj(this, corSelect);
				corAnt.push(this);
				objRem = this; //**************************
			}
		} else {
			preencheFig(this);
			corAnt.push(this);
			objRem = this; //**************************
		}
		objSelect = this;
	}
	_root["mc"+j].onRelease = _root["mc"+j].onReleaseOutside = function() {
		this.stopDrag();
	}
}
}

activeObjetos(0,4);//****************************

function pintaObj(mc, cor) {
var color_obj:ColorTransform = new ColorTransform(mc.fundo);
var trans_obj:Transform = new Transform(mc.fundo);
color_obj.rgb = cor;
trans_obj.colorTransform = color_obj
}

bt_duplica.onRelease = function() {
var d:MovieClip = objSelect.duplicateMovieClip("mc"+increment, this.getNextHighestDepth());
d.grade = false;
increment++;
d._x += 15;
d._y += 15;
d.onPress = function() {
	startDrag(this, false);
	this.swapDepths(_root.getNextHighestDepth());
	if (corSelect != "") {
		if (!this.grade) {
			pintaObj(this, corSelect);
			corAnt.push(this);
			objRem = this; //**************************
		} else {
			removeMovieClip(this.container);
			this.grande =  false;
			pintaObj(this, corSelect);
			corAnt.push(this);
			objRem = this; //**************************
		}
	} else {
		preencheFig(this);
		corAnt.push(this);
		objRem = this; //**************************
	}
	objSelect = this;
}
d.onRelease = d.onReleaseOutside =  function() {
	this.stopDrag();
}
}

function preencheFig(mc) {
mc.createEmptyMovieClip("container", 0);
mc.container._x = mc.container._y = 0;
mc.container.attachMovie("mc_fig"+id_fig, "mc_fig", 0); //quando attach o objeto da biblioteca, acrescente "+id_fig", para saber qual das texturas serão inseridas no movieclip.
mc.container.mc_fig._xscale = mc.container.mc_fig._yscale = 50;
mc.container.mc_fig._x = mc.container.mc_fig._y = 0;
var largura = mc._width;
var altura = mc._height;
var qtde = Math.ceil(largura/mc.container.mc_fig._width);
for (i=0; i<(qtde*qtde); i++) {
	var fig:MovieClip = mc.container.mc_fig.duplicateMovieClip("fig"+i, i+1);
	fig._x = (i%qtde)*(fig._width+0)+mc.container._x;
	fig._y = Math.floor(i/qtde)*(fig._height+0)+mc.container._y;
}
mc.container.setMask(mc.fundo);
removeMovieClip(mc.container.mc_fig);
mc.grade = true;
}

bt_remove.onPress = function() {
objSelect.swapDepths(_root.getNextHighestDepth());
removeMovieClip(objSelect);
}

var Desfazer:Object = new Object();
Desfazer.onKeyDown = function() {
if (Key.isDown(Key.CONTROL) && Key.isDown(90)) {//código 90 representa a letra "Z".
	if (corAnt.length > 0) {
		removeMovieClip(corAnt[corAnt.length-1].container);
		pintaObj(corAnt[corAnt.length-1],  cores[cores.length-1]);
		corAnt.splice(corAnt.length-1, 1);
	}
}
}
Key.addListener(Desfazer);

//**************************
btnObjs.onPress = function() {
switch (objetos._currentframe) {
	case 1:
		objetos.gotoAndStop(30);
		activeObjetos(4,8);
		removeMovieClip(objRem);
		trace("Objetos frame 30");
	break;
	case 30:
		//Aqui você pode mandar para o frame desejado e chamar a função para ativar as propriedades dos movieclips que serão pintados nesse frame.

		//objetos.gotoAndStop(60)
		//activeObjetos(8,12);
		//trace("Objetos frame 60");
	break;
}
}
//**************************

 

Fala galera, sera que ninguem sabe como resolver este problemas, pois preciso muito e ainda não encontrei a solução?

Galera que entende de as2.0 da esta força.

 

Valeu Junior

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.