PDA

Volledige versie bekijken : Zijn het Bugs of is Actionscript te langzaam?


Scrumble
%Europe/Berlin %372 %2006, 09:57
Ik zit met een probleem. Ik heb een drag 'n drop game gemaakt maar het probleem is als volgt.
Wanneer 2 blokjes goed liggen dan fade een ander blokje. Die word dan als het waren geunlocked. Maar dit kan bij 12 regels gebeuren dat een blokje geunlocked word. Heel leuk en aardig het script werkt maar de helft van de tijd, soms faden ze gewoon goed in en soms faden ze helemaal niet in het is heel wisselend en het verschilt per keer dat je de game start of hij wel goed infade of niet. Wanneer je blokjes op blijft tillen en weer dropped wil hij soms nog wel is gaan faden. En uit faden wil hij dus ook niet meer doen. Is het script te langzaam?

Mijn script is als volgt:

function fadeTC(object,type) {
if (object._alpha<=20 && type == "in") {
onEnterFrame = function () {
object._alpha += 5;
if (object._alpha>=100) {
delete this.onEnterFrame;
}
};
} else if(type == "out") {
onEnterFrame = function () {
object._alpha -= 5;
if (object._alpha<=20) {
object._alpha = 20;
delete this.onEnterFrame;
}
};
}
}


function fade() {
if (_root.Vak_F_01.hitTest(_root.F_01)) {
if (_root.Vak_B_01.hitTest(_root.B_01)) {
fadeTC(TC_01, "in");
} else {
fadeTC(TC_01, "out");
}
}

if (_root.Vak_F_02.hitTest(_root.F_02) || _root.Vak_F_02.hitTest(_root.F_06) || _root.Vak_F_02.hitTest(_root.F_07)) {
if (_root.Vak_B_02.hitTest(_root.B_02)) {
fadeTC(TC_02, "in");
} else {
fadeTC(TC_02, "out");
}
}

if (_root.Vak_F_03.hi..................
..................
..........
....


Ik snap niet wat er mis gaat.

(Ik heb de *.Fla file ook toegevoegd)

FredHeusschen
%Europe/Berlin %604 %2006, 15:31
ik kreeg ten eerste een foutmelding bij het exporteren, dat er iets pas beschikbaar was vanaf flashplayer 6.r 65 of hoger (ofzo, zie bijlage). Heb de exportopties dus naar flash7 gezet ipv 6.

verder denk ik dat je code een stuk beter kan. Je gebruikt nogal wat variabelen die verwart kunnen worden met de standaard flash-variabelen (in, out, type, object).

wat je verder kunt doen is een for-lus gebruiken om zo je code een stuk in te korten:

function fade() {
for (n=1; n < 10; n++) {
nr = String( (n < 10) ? "0" + n : n );
var vakF = _root["Vak_F_" + nr];
var f = _root["F_" + nr];
var vakB = root["Vak_B_" + nr];
var b = _root["B_" + nr];
var tc = _root["TC_" + nr];
if (vlak.hitTest(f)) {
if (vakB.hitTest(b)) {
fadeTC(tc, "in");
} else {
fadeTC(tc, "out");
}
}
}
}

wat ook nog voor problemen zorgt is dat de onEnterFrame die wellicht nog bezig is, wordt overschreven doordat de nieuwe alweer gestart wordt als ik het volgende blokje loslaat...
En de onEnterFrame dus toe aan de specifieke movieclip:

object.onEnterFrame = function() // de naam object moet ook echt anders

Scrumble
%Europe/Berlin %652 %2006, 16:39
Ik snap er niks van krijg hem niet gefixet. Ik ben geen scripter maar moet dit doen voor mijn stage zit al een week met dit probleem....
Als iemand het voor me zou kunnen fixen zou ik hem dankbaar zijn :)