ďťż

[FLASH] Zamiana pozycji obiektów

       

Podstrony


telcocafe

Witam...
Mam problem... nie wiem jak zrobić, żeby po najechaniu na przycisk zamieniały się ze sobą pozycjami dwa obiekty(image_1 i image_2 - Movie Clipy). Próbowałem rozklatkować takie zdarzenie( klatka2{ Image_1 na miejscu H(właściwe) , image_2 na miejscu G } klatka3{Iamge_1 na G a image_2 na H} Lecz po Compilacji wyskoczył błąd:

**Error** Scene=Scene 2, layer=About_me, frame=83:Line 1: Mouse events are permitted only for button instances
on (rollOver)

A kod tak wyglądał(klatka nr 1, button_1):

on (rollOver){
gotoANdPLay(2);
}

(klatka nr 1, button_2):

on (rollOver){
gotoAndPlay(3);
}

NIe mam pojęcia gdzie popełniłem błąd.. no chyba że zły sposób wybrałem
Pomóżcie..



Zdarzenia rollOver należy przypisywać przyciskom. Czyli najpierw trza zaznaczyć przycisk i potem wklepać AS.

Ja bym dał:

on (rollOver) { gotoAndStop(2); }

Żeby animacja dalej się nie odtwarzała. Ponadto do klatki pierwszej przypisz instrukcje stop();

Najpierw przypisz do obiektów, między którymi nastąpi zamiana miejsc odpowiednią Instance Name (np. image1 i image2). Powtórz tą czynność z przyciskiem (np. button1)

Kod 1. klatki kluczowej powinien wyglądać następująco:
starex = image1._x; starey= image1._y; nowex = image2._x; nowey= image2._y; button1.onRollOver = function () { image1._x = nowex; image1._y = nowey; /**/ image2._x = starex; image2._y = starey; } button_1.onRollOut = function () { starex = image1._x; starey= image1._y; nowex = image2._x; nowey= image2._y; }

Powyższy kod spowoduje, ze przy kazdym najechaniu na przycisk oba obiekty (image1 i image2) zamienią się miejscami.

Być może w moją notacje wkradł się błąd. Nie wiem - nie sprawdzałem.

pozdro ;)
Użytkownik RoboKomp edytował ten post 24 październik 2006, 14:03
Zadziałało dopiero jak wkleiłem ten kod po zaznaczeniu buttona i wklejeniu w actions klatki kluczowej zawierającej te image's.
Czyli defakto kod musze wkleić tam, gdzie obiekty są.. :/ dziwne.
Zamieniłem też w fnc. rollOut nazwy zmiennych w ten sposób:

BEFORE: starex = image_1_x;
AFTER: image_1._x = starex;

A oto wieści z Output'a:
**Error** Scene=Scene 2, layer=About_me, frame=80:Line 1: Statement must appear within on handler starex = image_1._x; **Error** Scene=Scene 2, layer=About_me, frame=80:Line 2: Statement must appear within on handler starey = image_1._y; **Error** Scene=Scene 2, layer=About_me, frame=80:Line 3: Statement must appear within on handler nowex = image_2._x; **Error** Scene=Scene 2, layer=About_me, frame=80:Line 4: Statement must appear within on handler nowey = image_2._y; **Error** Scene=Scene 2, layer=About_me, frame=80:Line 6: Statement must appear within on handler About_me.onRollOver = function () **Error** Scene=Scene 2, layer=About_me, frame=80:Line 15: Statement must appear within on handler About_me.onRollOut = function () Total ActionScript Errors: 6 Reported Errors: 6

Nie wiem.. czemu.. skoro wszystko działa jak należy <_<
Użytkownik bobak_art edytował ten post 24 październik 2006, 21:59


jeśli wkleiłeś to:
starex = image_1._x; starey = image_1._y; nowex = image_2._x; nowey = image_2._y;
poza ramami detektorów - jest to błędem.

prześlij mi plik .Fla to Ci naprawię :)
Użytkownik RoboKomp edytował ten post 25 październik 2006, 17:18
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.