PDA

Volledige versie bekijken : Problemen in Flash CS3


Sebastian D
%Europe/Berlin %503 %2007, 13:05
Ik werk sinds kort met CS3 maar ondervind een aantal problemen.
Werk nog gewoon in de AS2 modus omdat ik in een oud project bezig ben.

Wat ik merk is dat simpele dingen als dit niet meer werken, vooral die eerste vind ik heel raar.

Voorbeeld 1;

Simpelweg je functie activeren.

Hij roept de functie gewoon niet aan lijkt wel. De release werkt gewoon niet dus hij roept hem niet aan. Als ik de functie lines wegquote doet hij het namelijk wel gewoon.


Menu();

function Menu(){

for (i=0; i<5; i++) {
container.menu["btn"+i].onRelease = function() {
//actie
};
}
}


Voorbeeld 2;

Of het wisselen van variablen (even simpel voorbeeld gemaakt).

Ik begin met menuStatus="off"; en als ik op de knop druk zet ik menustatus op menuStatus="on";, als ik vervolgens trace(menuStatus); doe krijg ik netjes on terug. Als ik vervolgens een functie heb met een release erin die alleen moet werken als if(menuStatus=="on"); dan doen ze het gewoon niet. Dit gebruikte ik in Flash 8 gewoon vaak en dat werkte prima.

var menuStatus = "off";
Menu();

test.onRelease = function(){
var menuStatus = "on";
trace (menuStatus); //Geeft "on" !!
}
function Menu(){

for (i=0; i<5; i++) {
if(menuStatus == "on"){
container.menu["btn"+i].onRelease = function() {
//actie
};
}
}
}
Menu()



Kan me niet voorstellen dat hier iets in veranderd is, maar toch wil het op 1 of andere manier niet werken.

Laiverd
%Europe/Berlin %512 %2007, 13:17
Leg s.v.p. dan ook even uit wat er niet werkt: "het werkt niet" helpt niet zoveel ;) Sowieso moet je altijd je fundtie definieren voor je 'm aanroept.

Sebastian D
%Europe/Berlin %518 %2007, 13:26
Ow ik dacht dat het duidelijk genoeg was met mijn voorbeelden :)

Ookal roep ik hem na m'n functie aan dan werkt het ook niet, sowieso maakt dat vaak weinig uit.

Voorbeeld 1;
Hij roept de functie gewoon niet aan lijkt wel. De release werkt gewoon niet dus hij roept hem niet aan. Als ik de functie lines wegquote doet hij het namelijk wel gewoon.

Voorbeeld 2;
Ik begin met menuStatus="off"; en als ik op de knop druk zet ik menustatus op menuStatus="on";, als ik vervolgens trace(menuStatus); doe krijg ik netjes on terug. Als ik vervolgens een functie heb met een release erin die alleen moet werken als if(menuStatus=="on"); dan doen ze het gewoon niet. Dit gebruikte ik in Flash 8 gewoon vaak en dat werkte prima.

Laiverd
%Europe/Berlin %523 %2007, 13:33
Zet eens een trace direct na je Menu() functie definitie: je zult zien dat ie gewoon wordt aangeroepen. Alleen in je test.onRelease zet je menuStatus maar 1x (hoe vaak je er ook op klikt); daarna zal die status nooit meer veranderen.

Verder: als je in een for loop button actie wilt definieren, dan moet je ervoor zorgen dat iedere button in de for loop uniek is omdat anders alle buttons de actie van de laatste i-waarde in de loop krijgen. Voorbeelden hiervan zijn op Flashfocus in het verleden wel gepost. Zet binnen je for loop ook eens een trace(container.menu["btn"+i]) om te zien of ze wel bestaan.

John

Sebastian D
%Europe/Berlin %526 %2007, 13:38
Denk dat je me niet helemaal snapt :P, ik weet wel waar ik mee bezig ben met die forloops ,dat is het probleem niet die werken gewoon prima. Ik heb gewoon een oud project waar ik nu in werk in CS3 en loop tegen een aantal zaken aan die niet meer werken.

Heb even die menu functie uitgekleed als voorbeeld voor hier, alleen had die forloop erin laten staan. Had ik er net zo goed uit kunnen laten.

Dat van die statusverandering klopt, maar in m'n oorspronkelijke code zit weer ergens iets waar hij weer teruggezet wordt op "off" , maarja dat is niet echt van toepassing voor mn vraag dus dat stuk heb ik niet gepost. Heb nu gewoon even een kort stukje code gemaakt om het uit te leggen.;)

Heedless
%Europe/Berlin %556 %2007, 14:20
Wat ook niet werkt bijv zijn dingen zoals

ding1.onRelease = ding1.onDragOut = ding2.onRelease = ding2.onDragOut = function(){
//doe
}

in principe werkt het, maar als je dan de auto format knop indrukt, dan plaatst hij achter elk { teken een ; en alle indents gaan ook totaal fout. En vervolgens werkt je code dan niet meer. Ik moet telkens die ding1.onRelease enz regels commenten, en dan een ding1.onRelease = function() regel daarvoor in de plaatst zetten, dan auto format, en dan de originele regel weer terugplaatsen.

Het rare is alleen dat het er ook nog van afhangt of je meer code op je frame hebt of niet. Dat ene stukje los kan je formaten, maar als er daarna ergens nog een functie zit kan het niet. Erg raar

Sebastian D
%Europe/Berlin %757 %2007, 19:11
Inmiddels heb ik vraag1 verholpen door simpel de functie naam niet meer Menu() te noemen.

De vraag met de IF krijg ik echt niet opgelost...
Hij herkent gewoon de variable als ik hem trace maar zodra ik de variable in een if zet en probeer te vergelijken met iets werkt het gewoonweg niet. Je kan nog gewoon klikken.