webForumDet fria alternativet

AS-trubbel

Flash

14 svar · 245 visningar · startad av Rastapopoulos

Medlem sedan aug. 200323 inlägg
Frågan#1

Hej!

Sitter just nu med en site i Flash där jag behöver lägga till actionscript för knapplägen, men alla kommandon (goto, stop o s v) är gråmarkerade i knappredigeringsläget i åtgärdsfönstret. Det funkar med tidsslinjescript men inte med knapparna. Har suttit tolv timmar/dag i några dagar nu så jag är rätt trött och kanske har missat något, alla tips emottages med Stor Tacksamhet.

Och ja - jag har testat att slänga prefsfilen och starta om programmet. Jag kör f ö Flash MX.

Medlem sedan feb. 2003108 inlägg
#2

Som jag fattar det är du inne i knappredigeringen och vill skriva kod. Det är inte meningen att man ska lägga koden där.

Prova istället att lägga in knapen där den skall ligga och markera den tryck f9 och prova följande kod:
on (release) {
gotoAndPlay(2);
}

Medlem sedan aug. 200323 inlägg
#3

Hej och tack för svar.

Jodå, visst skall det gå att lägga till kod i redigeringsläget. I det här fallet (med en symbol som har knappbeteende) så vill jag ju att ett visst skript skall utföras oavsett vilken förekomst(instans) av knappen som det gäller.

Det är alltså inte ett tidslinjerelaterat skript jag vill ha utan ett knapprelaterat. När en symbol har knappbeteende så finns ju fyra olika lägen, nämligen Upp, Över, Ned och Träff. Vid t ex Ned vill jag att ett skript skall genomföras alltså.

Det jag vill göra är i princip samma sak som i Flashhjälpens "Lägga till åtgärder för knappar", väldigt vanlig och enkel operation sålunda. Det har alltid funkat förut, (funkade häromdagen) så jag undrar vad som är galet. Finns det månne någon inställning jag har missat någonstans…

Medlem sedan juli 20031 505 inlägg
#4

Då blir det
on(press){
//Gör nått kul
}
och det skall ligga på tidslinjen.
Hur du har gjort för att peta in kod i redigeringsläget vet jag ej....

Medlem sedan aug. 200323 inlägg
#5

Kolla övningsfilen "buttons.swf" i mappen "Lessons" så förstår ni vad jag menar.

Ett AS på tidslinjen är inte samma sak som jag är ute efter eftersom det inte per automatik är kopplat till alla förekomster av symbolen/knappen.

Medlem sedan juli 20031 505 inlägg
#6

Gör en figur och markera figuren och tryck F8, välj knapp.
Nu har du en knapp på scenen, markera knappen och skriv in on(press){
//Någonting
}
i action-fönstret.

/r Ser att jag skrev lite tokigt i inlägget ovan, så glöm det inlägget :)

Medlem sedan aug. 200323 inlägg
#7

Jodå, att skapa symboler samt den grundläggande syntaxen är inget problem eftersom jag hållit på med Flash i flera år. Problemet är liksom att jag i knapplägets egen tidslinje (den med Upp, Över, Ner och Träff) inte kan skriva någon som helst kod på någon av nyckelrutorna eftersom alla actions är gråmarkerade.

Jag lade upp en skärmdump på:

http://www.keytech.se/public/Bild3.jpg

Medlem sedan juli 20031 505 inlägg
#8

Rastapopoulos skrev:

...eftersom alla actions är gråmarkerade.

Det är p.g.a. att det inte går att skriva kod där.

Medlem sedan aug. 200323 inlägg
#9

Jo, det är ju liksom det som är själva problemet. Återigen - Det Skall_Gå_Att skriva kod där. Det finns som sagt t o m ett sådant övningsexempel i MX-mappen med exakt samma funktionalitet. Är detta en bugg eller vad?

Medlem sedan juli 20031 505 inlägg
#10

Nej, det är ingen bugg.
Vad är det du vill åstakomma, varför måste du skriva din kod där det inte går att skriva kod. :q

Medlem sedan aug. 200323 inlägg
#11

Det är en inga konstigheter. En helt helt vanlig knapp - med inbyggda AS kopplade till själva knappen - så att den går att återanvända för flera förekomster. En tämligen elementär funktion med andra ord.

Har du kollat övningsfilen? Annars - gör det så förstår du vad jag är ute efter.

Medlem sedan maj 2003750 inlägg
#12

Har kollat övningsfilen och där står inget om att lägga in kod på knappens tidslinje. Det enda som där pratas om är att lägga till kod på dess instans/förekomst.

Vad jag vet så går det inte att lägga skript på knappens tidslinje utan du måste antingen lägga koden inne i t.ex. ett filmklipp som ligger i den knappens nyckelruta. Eller Så använder du dig av ett filmklipp som agerar som knapp.

Du kan IOFS också lägga till skript i knappobjektets prototyp men då får alla knappar de beteenderna som standard.

Vad är det riktigt som du försöker åstadkomma? Kanske finns det ett annat sätt att lösa det på?

/Mirandir

Medlem sedan aug. 200323 inlägg
#13

Kollade själv igen och ni har ju rätt båda två (Söderlund o Mirandir). F ö är jag mycket tacksam att ni hjälper till :-)

Det verkar helt enkelt inte gå att koppla ett AS till annat än en enstaka förekomst i taget. Kan det månne vara så att jag blandar ihop Flash och Director dvs AS och Lingo (som jag också jobbat en del med)?

I så fall ber jag allra ödmjukast om ursäkt för att jag klantat mig.

(Ninjaedit, sorry;-)

Medlem sedan maj 2003750 inlägg
#14

Hehe men som vanligt så finns det alltid sätt att komma runt detta i Flash ;)...

om du publicerar för player 6 så skapa ett filmklipp Sätt in labels som "_up", "_down"och "_over" för de olika knapphändelserna. Lägg grafiken för de olika händelserna i respektive bildruta. Sedan så lägger du in följande actions i första framen:

stop();

this.onPress = function()
{
    // koden som skall utföras när knappen trycks ned...
}

this.onRelease = function()
{
    // kod som utförs när knappen släpps...
}

// + fler eventhanterare om du skulle behöva dem...

/Mirandir

Medlem sedan aug. 200323 inlägg
#15

Ah. Elegant! Så får det kanske bli. Tack för ert tålamod!

2257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
1894 ms — hämta tråd, inlägg och bilagor (db)
356 ms — ändringar (db)