Strona 1 z 1

problem z przyciskiem

: pn lip 28, 2008 11:08 am
autor: szulecki
na początku zaznaczę że raczkuję we flashu, wiec prosilbym w miare mozliwosci o dokladne instrukcje. :)

oto problem:

stworzylem we flashu przycisk, a wlasciwie cos w rodzaju interaktywnej animacji w formie przycisku. polega ona na tym, ze na "UP" jest animacja (maly stworek chowa sie do dziury, powiedzmy, ze jest to "animacja-1"), a na "OVER" jest ta sama animacja tylko ze w inwersji (np. "animacja-2"), tak ze po najechaniu stworek sie wynurza, a po zjechaniu mychą - chowa się.

wszystko pięknie, tylko chcialbym dodac jakas akcje zeby w momencie zjechania mychy z przycisku flash zarejestrowal aktualną klatke czy cuś i od tej wlasnie rozpoczal animacje chowania sie stworka. bo jak na razie, jesli za szybko sie zjedzie kursorem z animacji - "animacja-1" odtwarzana jest od początku i nie ma płynności..

ahaa. jak juz tak sie rozpisalem: jeszcze potrzebuje info, jak zrobic patencik, zeby po kliknieciu na przycisk - odtwarzana byla na przyklad animacja od klatki drugiej (przycisk jest w klatce pierwszej).

hmmm... mam nadzieję ze wyrazilem sie dosc jasno.. :)
pozdrawiam.

Re: problem z przyciskiem

: pn lip 28, 2008 3:52 pm
autor: Fistach
1) szukaj 'cofanie'
2) gotoAndPlay ( ); - miedzy ( ) numer lub nazwa klatkiod ktorej ma grac.

Re: problem z przyciskiem

: śr lip 30, 2008 7:20 pm
autor: szulecki
oh geez...
po trzech dniach móżdżenia i czytania wreszcie mi sie udalo... :D :D :D
przewertowalem cale forum, milion tutoriali i gotowych przyciskow tego typu..
plus duzo action scripta (polecam chocby http://www.flashzone.pl, albo http://www.adobe.com/support/flash/action_scripts.html)..

co prawda dalej do konca nie rozumiem swojego kodu (ktory po czesci podebralem z pewnej animacji, niech autor mi wybaczy :))) ale coz... moze kiedys.. ;]
a teraz dla wszystkich (moze komus sie przyda); zrobilem to tak:

w mc dalem jeszcze jedna warstwe i w pierwszej kratce dalem kod as(1.0+2.0):

Kod: Zaznacz cały

stop();
this.onRollOver = function() {
	play();
	this.step = true;
		this.onEnterFrame = function() {
			if (this._currentframe == this._totalframes) {
				this.stop();
			}
			if (this.step == false) {
				this.gotoAndStop(this._currentframe - 1);
			}
			if (this._currentframe == 1) {
				delete this.onEnterFrame;
			}
		};
	};
	this.onRollOut = function() {
		this.step = false;
	}
teraz poprosze o szereg wyjasnien:
rozumiem ze animacja jest zatrzymana na poczatku

Kod: Zaznacz cały

stop();
po najechaniu mycha jest odtwarzana przyporzadkowana jest taka funkcja:

"== : test equality" (czyli "test zgodnosci", mam racje?)
i teraz jesli aktualna klatka tegoż (movie clipa) jest zgodna z ogolna iloscia klatek >>> wtedy animacja stop

Kod: Zaznacz cały

		if (this._currentframe == this._totalframes) {
				this.stop();
dalej

jesli zjedzie sie myszka >>> animacja odtwarzana jest od tylu.

Kod: Zaznacz cały

if (this.step == false) {
				this.gotoAndStop(this._currentframe - 1);
			}
"this.step" >>> na poczatku przyporzadkowana jest (wzgledem funkcji "onEnterFrame") wartosc 'true', tutaj odwoluje sie do pozniejszej

Kod: Zaznacz cały

	this.onRollOut = function() {
		this.step = false;
	}
i na koncu funkcji: jesli animacja dojdzie do klatki pierwszej- resetuje funkcje..

Kod: Zaznacz cały

	if (this._currentframe == 1) {
				delete this.onEnterFrame;
			}
przepraszam za laicki jezyk. czy dobrze zrozumialem?

Re: problem z przyciskiem

: śr lip 30, 2008 8:13 pm
autor: szulecki
ha!
efekt mozecie zobaczyc tutaj:
http://www.szulecki.za.pl/index2.htm

zjedzcie na dol i pomacajcie myszka po wszystkich dziurach w kartce. z jednej wynurzy sie stworek.

Re: problem z przyciskiem

: śr lip 30, 2008 11:07 pm
autor: mrowa
Można prościej. Robisz movieclip powiedzmy na 25 klatek i dajesz do niego kod:

Kod: Zaznacz cały

on (rollOver) {
	this.onEnterFrame = function() {
		if (this._currentframe<25) {
			nextFrame();
		}
	}
}

on (rollOut) {
	this.onEnterFrame = function() {
		if (this._currentframe>0) {
			prevFrame();
		}
	}
}

Re: problem z przyciskiem

: czw lip 31, 2008 8:18 am
autor: Marek_bf
@mrowa, fajnie, że chcesz pomagać, ale skoro już to robisz to postaraj się przedstawiać kod, który jest w miarę nowy, używanie on() jest niezalecane od 6 lat. Nie każ się, więc innym cofać w rozwoju :)