PDA

Volledige versie bekijken : Vreemd probleem met onPress


FredericCox
%Europe/Berlin %607 %2005, 15:34
Hallo, ik heb een zeer vreemd probleem maar weet niet juist waar de oorzaak zit dus ik leg het even uit.

Ik heb dus een resem spelers die in een ploegopstelling moeten.
Ik heb hiervoor een knop LineUp. Als ik daar op klikt dan zet hij alle spelers correct op het veld. Klik ik echter nog eens dan verdwijnt één speler ( de eerst aangemaakte) van het veld. Weet iemand waarom?

Code bij onPress:

btnLineups.onRelease = function(){
Show(this._parent.Extra.LineUps)
this._parent.Live2D.attachMovie("e21","e21",this._parent.Live2D.getNextHighestDepth())
this._parent.Live2D.e21._x = -125
this._parent.Live2D.e21._y = 94
}

Code in mc e21



//MAAK E21 AAN
tv = this._parent._parent

trace("HomeColor" + " = " + "0x"+tv.HomeTeamColor);
trace("AwayColor" + " = " + "0x"+tv.AwayTeamColor);
var playername:TextFormat = new TextFormat();
//playername.bold = true;
playername.size = 6
playername.font = "Verdana"
TW = 165

T = TW / tv.HomeDEFS.length
for(i=0;i<tv.HomeDEFS.length;i++){
homespeler = tv.Live2D.e21.attachMovie("playermc","playermc"+i,this.getNextHighestDepth())
homeshirtc = new Color(homespeler.Shirt)
homeshirtc.setRGB("0x"+tv.HomeTeamColor)
homespeler._x = 124 + i*T+0.5*T
homespeler._y = - 64
homespeler.createTextField(instanceName="txtplayermc"+i,this.getNextHighestDepth(),-15,0,60,20)
homespeler["txtplayermc"+i].textColor = 0xFFFFFF
homespeler["txtplayermc"+i].text = tv.HomeDEFS[i]
homespeler["txtplayermc"+i].setTextFormat(playername);

}
T = TW / tv.HomeMIDS.length
for(i=0;i<tv.HomeMIDS.length;i++){
homespeler = tv.Live2D.e21.attachMovie("playermc","playermc"+(tv.HomeDEFS.length + i),this.getNextHighestDepth())
homeshirtc = new Color(homespeler.Shirt)
homeshirtc.setRGB("0x"+tv.HomeTeamColor)
homespeler._x = 124 + i*T+0.5*T
homespeler._y = -43
homespeler.createTextField(instanceName="txtplayermc"+(tv.HomeDEFS.length + i),this.getNextHighestDepth(),-15,0,60,20)
homespeler["txtplayermc"+(tv.HomeDEFS.length + i)].textColor = 0xFFFFFF
homespeler["txtplayermc"+(tv.HomeDEFS.length + i)].text = tv.HomeMIDS[i]
homespeler["txtplayermc"+(tv.HomeDEFS.length + i)].setTextFormat(playername);
}
T = TW / tv.HomeFORS.length
for(i=0;i<tv.HomeFORS.length;i++){
homespeler = tv.Live2D.e21.attachMovie("playermc","playermc"+(tv.HomeDEFS.length + tv.HomeMIDS.length + i),this.getNextHighestDepth())
homeshirtc = new Color(homespeler.Shirt)
homeshirtc.setRGB("0x"+tv.HomeTeamColor)
homespeler._x = 124 + i*T+0.5*T
homespeler._y = -16
homespeler.createTextField(instanceName="txtplayermc"+(tv.HomeDEFS.length + tv.HomeMIDS.length + i),this.getNextHighestDepth(),-15,0,60,20)
homespeler["txtplayermc"+(tv.HomeDEFS.length + tv.HomeMIDS.length + i)].textColor = 0xFFFFFF
homespeler["txtplayermc"+(tv.HomeDEFS.length + tv.HomeMIDS.length + i)].text = tv.HomeFORS[i]
homespeler["txtplayermc"+(tv.HomeDEFS.length + tv.HomeMIDS.length + i)].setTextFormat(playername);
}

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

T = TW / tv.AwayDEFS.length
for(i=0;i<tv.AwayDEFS.length;i++){
awayspeler = tv.Live2D.e21.attachMovie("playermc","awayplayermc"+i,this.getNextHighestDepth())
awayshirtc = new Color(awayspeler.Shirt)
awayshirtc.setRGB("0x"+tv.AwayTeamColor)
awayspeler._x = 124 + i*T+0.5*T
awayspeler._y = 54
awayspeler.createTextField(instanceName="txtawayplayermc"+i,this.getNextHighestDepth(),-15,0,180,20)
awayspeler["txtawayplayermc"+i].textColor = 0xFFFFFF
awayspeler["txtawayplayermc"+i].text = tv.AwayDEFS[i]
awayspeler["txtawayplayermc"+i].setTextFormat(playername);

}
T = TW / tv.AwayMIDS.length
for(i=0;i<tv.AwayMIDS.length;i++){
awayspeler = tv.Live2D.e21.attachMovie("playermc","awayplayermc"+(tv.AwayDEFS.length + i),this.getNextHighestDepth())
awayshirtc = new Color(awayspeler.Shirt)
awayshirtc.setRGB("0x"+tv.AwayTeamColor)
awayspeler._x = 124 + i*T+0.5*T
awayspeler._y = 33
awayspeler.createTextField(instanceName="txtawayplayermc"+(tv.AwayDEFS.length + i),this.getNextHighestDepth(),-15,0,200,20)
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + i)].textColor = 0xFFFFFF
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + i)].text = tv.AwayMIDS[i]
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + i)].setTextFormat(playername);
}
T = TW / tv.AwayFORS.length
for(i=0;i<tv.AwayFORS.length;i++){
awayspeler = tv.Live2D.e21.attachMovie("playermc","awayplayermc"+(tv.AwayDEFS.length + tv.AwayMIDS.length + i),this.getNextHighestDepth())
awayshirtc = new Color(awayspeler.Shirt)
awayshirtc.setRGB("0x"+tv.AwayTeamColor)
awayspeler._x = 124 + i*T+0.5*T
awayspeler._y = 9
awayspeler.createTextField(instanceName="txtawayplayermc"+(tv.AwayDEFS.length + tv.AwayMIDS.length + i),this.getNextHighestDepth(),-15,0,200,20)
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + tv.AwayMIDS.length + i)].textColor = 0xFFFFFF
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + tv.AwayMIDS.length + i)].text = tv.AwayFORS[i]
awayspeler["txtawayplayermc"+(tv.AwayDEFS.length + tv.AwayMIDS.length + i)].setTextFormat(playername);
}

FredericCox
%Europe/Berlin %658 %2005, 16:48
Niemand??

mateo)
%Europe/Berlin %704 %2005, 17:54
he frederic,
Het is lastig om zonder context hier een fout te ontdekken. Ik raad je wel aan om je code te versimpelen. Dan heb je in ieder geval minder kans op typo's en je code wordt een stuk overzichtelijker. Hier is een voorbeeldje (even zonder 'strong typing'):

//MAAK E21 AAN
tv = this._parent._parent

trace("HomeColor" + " = " + "0x"+tv.HomeTeamColor);
trace("AwayColor" + " = " + "0x"+tv.AwayTeamColor);
var playername:TextFormat = new TextFormat();
//playername.bold = true;
playername.size = 6
playername.font = "Verdana"
TW = 165

function attachPlayer(i, text, T, y){
p = this.attachMovie("playermc","playermc" + i ,this.getNextHighestDepth())
homeshirtc = new Color(p.Shirt);
homeshirtc.setRGB("0x"+tv.HomeTeamColor);
p._x = 124 + i*T+0.5*T;
p._y = y;
pt = p.createTextField(instanceName="txtplayermc" + i,this.getNextHighestDepth(),-15,0,60,20);
pt.textColor = 0xFFFFFF;
pt.text = text;
pt.setTextFormat(playername);
}

T = TW / tv.HomeDEFS.length
for(i=0;i<tv.HomeDEFS.length;i++){
attachPlayer(i, tv.HomeDEFS[i], T, -64)
}

T = TW / tv.HomeMIDS.length
l = i;
for(;i<tv.HomeMIDS.length + l;i++){
attachPlayer(i, tv.HomeMIDS[i - l], T, -43)
}

T = TW / tv.HomeFORS.length
l = i;
for(;i<tv.HomeFORS.length;i++){
attachPlayer(i, tv.HomeFORS[i - l], T, -16)
}

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

T = TW / tv.AwayDEFS.length
for(i=0;i<tv.AwayDEFS.length;i++){
attachPlayer(i, tv.AwayDEFS[i], T, 54)
}
T = TW / tv.AwayMIDS.length
l = i;
for(;i<tv.AwayMIDS.length;i++){
attachPlayer(i, tv.AwayMIDS[i - l], T, 33)
}
T = TW / tv.AwayFORS.length
l = i;
for(;i<tv.AwayFORS.length;i++){
attachPlayer(i, tv.AwayFORS[i - l], T, 9)
}

FredericCox
%Europe/Berlin %746 %2005, 18:54
Bedankt maar ik vind het gek dat deze code de tweede maal fout loopt:s

Hoe kan ik alles van het vorige eerst verwijderen?

mateo)
%Europe/Berlin %755 %2005, 19:08
ik zou zeggen door i.p.v. dit:

btnLineups.onRelease = function(){
Show(this._parent.Extra.LineUps)
this._parent.Live2D.attachMovie("e21","e21",this._parent.Live2D.getNextHighestDepth())
this._parent.Live2D.e21._x = -125
this._parent.Live2D.e21._y = 94
}

dit neer te zetten:

btnLineups.onRelease = function(){
Show(this._parent.Extra.LineUps)
this._parent.Live2D.attachMovie("e21","e21",1)
this._parent.Live2D.e21._x = -125
this._parent.Live2D.e21._y = 94
}

(er van uitgaande dat er in this._parent.Live2D geen andere movieclips zijn ge-attached)

FredericCox
%Europe/Berlin %799 %2005, 20:11
//MAAK E21 AAN
tv = this._parent._parent

trace("HomeColor" + " = " + "0x"+tv.HomeTeamColor);
trace("AwayColor" + " = " + "0x"+tv.AwayTeamColor);

//playername.bold = true;


function attachPlayer(i,color,ypos,playername,t){
var fmplayername:TextFormat = new TextFormat();
player = tv.Live2D.e21.attachMovie("playermc","playermc"+i,this.getNextHighestDepth())
playershirt = new Color(player.Shirt)
playershirt.setRGB("0x"+color)
player._x = 124 + i*t+0.5*t
player._y = ypos
player.createTextField(instanceName="txtplayermc"+i,this.getNextHighestDepth(),-15,0,60,20)
player["txtplayermc"+i].textColor = 0xFFFFFF
player["txtplayermc"+i].text = playername
fmplayername.size = 6
fmplayername.font = "Verdana"
player["txtplayermc"+i].setTextFormat(fmplayername);
}

TW = 165


for(i=0;i<tv.HomeDEFS.length;i++){
t = TW / tv.HomeDEFS.length
attachPlayer(i,tv.HomeTeamColor,-64,tv.HomeDEFS[i],t)
}

for(i=0;i<tv.HomeMIDS.length;i++){
t = TW / tv.HomeMIDS.length
attachPlayer((i+HomeDEFS.length),tv.HomeTeamColor,-43,tv.HomeMIDS[i],t)
}

for(i=0;i<tv.HomeFORS.length;i++){
t = TW / tv.HomeFORS.length
attachPlayer(((i+HomeDEFS.length)+HomeMIDS.length) ,tv.HomeTeamColor,-16,tv.HomeFORS[i],t)
}
var HomePlayers:Number = tv.HomeDEFS.length + tv.HomeMIDS.length + tv.HomeFORS.length
/////////////////////////////
/////////////////////////////////


for(i=0;i<tv.AwayDEFS.length;i++){
t = TW / tv.AwayDEFS.length
attachPlayer(HomePlayers+i,tv.AwayTeamColor,54,tv. AwayDEFS[i],t)
}

for(i=0;i<tv.AwayMIDS.length;i++){
t = TW / tv.AwayMIDS.length
attachPlayer(HomePlayers+(i+AwayDEFS.length),tv.Aw ayTeamColor,33,tv.AwayMIDS[i],t)
}

for(i=0;i<tv.AwayFORS.length;i++){
t = TW / tv.AwayFORS.length
attachPlayer(HomePlayers+((i+AwayDEFS.length)+Away MIDS.length),tv.AwayTeamColor,9,tv.AwayFORS[i],t)
}

Dit geef alleen maar de thuisverdedigers weer! Ik word er gek van

mateo)
%Europe/Berlin %946 %2005, 23:43
je hebt nu steeds weer for(i = 0; geschreven. als je goed kijkt naar mijn scriptje dan zie je dat ik dat weggelaten heb voor de for loopjes die na de verdedigers komen :)

ik wou je niet nog meer in de war maken. ik dacht eerder dat dit de boel wat overzichtelijker zou maken voor je...