webForumDet fria alternativet

Kodtrubbel

5 svar · 361 visningar · startad av Cuiris

CuirisMedlem sedan feb. 2006107 inlägg
#1

Jag är inte så jäkla haj på detta med kodning och funderar lite hur jag använder flera kommandon under samma "funktion". Det är alltså två st saker jag vill ha under release. Jag får bara felmeddelande.

KODEN:

on (rollOver) {
this.gotoAndPlay(2);
}
on (rollOut) {
this.gotoAndPlay(30);
}
on(release){_root.gotoAndStop(1)}
on (release) {
setProperty("/menu/char0", _x, redDotStart+1040);
}

De felmeddelanden jag får är följande, om någon orkar läsa ;D

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 1: Mouse events are permitted only for button instances
on (rollOver) {

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 2: You must export your movie as Flash 5 to use this expression.
this.gotoAndPlay(2);

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 1: Statement must appear within onClipEvent handler
on (rollOver) {

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 4: Mouse events are permitted only for button instances
on (rollOut) {

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 5: You must export your movie as Flash 5 to use this expression.
this.gotoAndPlay(30);

**Error** Scene=Portfolio_2, layer=Layer 50, frame=1:Line 4: Statement must appear within onClipEvent handler
on (rollOut) {

mirandirMedlem sedan maj 2003750 inlägg
#2

Du kan inte placera on()-events på filmklipp i Player versioner lägre än 6.0. Du verkar publicera för player 4 eller tidigare.

För att få in mer kod i samma "funktion" så är det bara att lägga in fler rader mellan "måsvingarna":

on(release){
    _root.gotoAndStop(1);
    setProperty("/menu/char0", _x, redDotStart+1040);
}

/Mirandir

CuirisMedlem sedan feb. 2006107 inlägg
#3

Hej!

Tack så mycket, det visade sig att flashfilmen jag arbetar utifrån, en mall, använder sig av just Flash 4. Om jag ändrar den till 8 så fungerar inte funktionerna som är i den, vad ska jag nu göra? :/

mirandirMedlem sedan maj 2003750 inlägg
#4

kontrollera att instansnamnen överensstämmer med de instansnamn som är angivna i setProperty.

på huvudtidslinjen skall det finnas ett filmklipp som har instansnamnet "menu" med små bokstäver. I detta filmklipp skall det finnas ett filmklipp med instansnamnet "char0" också det med små bokstäver.

Dessutom så har redDotStart något värde tilldelat till sig?

Och som sista punkt så för att göra koden lite snyggare så använd följande istället för setProperty():

_root.menu.char0._x = redDotStart + 1040;

/Mirandir

CuirisMedlem sedan feb. 2006107 inlägg
#5

Tack så mycket Mirandir!

Jag ändrade versionen till flash 6, då fungerade funktionerna.

CuirisMedlem sedan feb. 2006107 inlägg
#6

Då kanske man ska förfina denna kod också? Är det ett stort företag och göra denna kod möjlig i nyare flash? Denna kod verkar inte fungera i senare versioner än Flash 6.

KOD
// n = Number of characters a = Acceleration
n = 1;
a = 8;
i = 0;
while (Number(i)<=Number(n)) {
set("char" add i add ":Xpos", getProperty ("char" add i,_x) + lead);
if (Number(i)>0) {
set("Xspacing" add i, (eval("char" add i add ":Xpos"))-eval("char" add (i-1) add ":Xpos"));
}
i = Number(i)+1;
}

SAMT

i = 1;
while (Number(i)<=Number(n)) {
set("char" add i add ":Xspeed", (eval("Xspacing" add i) - eval("char" add i add ":Xpos") + eval("char" add (i-1) add ":Xpos"))/a);
set("char" add i add ":Xpos", eval("char" add i add ":Xpos")+eval("char" add i add ":Xspeed"));
i = Number(i)+1;
}
char0:Xpos = getProperty("char0", _x);
i = 1;
while (Number(i)<=Number(n)) {
setProperty("char" add i, _x, eval("char" add i add ":Xpos"));
i = Number(i)+1;
}

131 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)