konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

Witajcie. Mam następujący problem i prosim bardzo o pomoc. Zrobiłem sobie rotator bannerów i generalnie nie mam błędu w żadnym trybie. Wczytuje on do UILoadera filmiki, oprócz tego mam guziczki którymi manualnie da się zmienić na konkretny numer bannera. Timer pobiera czas z zew.txt dla każdego banneru i wszystko działa ładnie. Schody zaczynają się po kilku manualnych zmianach guzikami. Bannery zaczynają się bardzo szybko zmieniać jakby olewały wczytywanie delay'u do Timera a każdy trwał ok. 1-2sek. Wydaje mi się że to kwestia czyszczenia pamięci ale jeszczem świeżaczkiem więc może jestem w błędzie. Oto kod dla jednej z 6 klatek. W każdej jest to samo tylko nazwy zmiennych i funkcji mają nowe numery - to pewnie też słabo efektywny pomysł.

stop();

Rotator.source = ("rotacja/1.swf");

var urlRequest1:URLRequest = new URLRequest("rotacja/1.txt");
var urlLoader1:URLLoader = new URLLoader();
urlLoader1.addEventListener(Event.COMPLETE, urlLoader_complete1);
urlLoader1.load(urlRequest1);

function urlLoader_complete1(evt:Event):void {
czas1 = urlLoader1.data;
var czas1:String;
var time1:Number = Number(czas1);
trace(czas1)
var tajmer1:Timer = new Timer(time1, 1);
tajmer1.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler1);
tajmer1.start();

function timerHandler1(evt:TimerEvent):void
{
tajmer1.removeEventListener(TimerEvent.TIMER_COMPLETE, timerHandler1);
urlLoader1.removeEventListener(Event.COMPLETE, urlLoader_complete1);
gotoAndPlay (2);
}
}

Próbowałem czyścić listenery a nawet obiekty na wyjściu z klatki (f. timerHandler) ale bez zmian. Prosim o pomoc co skopałem. Podobny problem miałem w grze jaką sobie dziobałem ale tam usuwanie listenerów zdało egzamin - również gra przyśpieszała dwu, trzykrotnie). Z góry bardzo dziękuje. Co złego to nie ja.

konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

Aha - dodam jeszcze że moja jedyna opcja to flash cs3 bo taki kiedyś nabyłem - bardzo prosiłbym to wziąć pod uwagę (nowsze wersje chyba mają funkcję do czyszczenia całej pamięci - jeżeli to oczywiście jest przyczyną). Pozdrawiam grupowiczów.

konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

timer.reset() ?

konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

Dzięki za odzew i trop :) niestety pacjent nadal nie żyje. Reset nic nie daje co gorsza nie widzę za bardzo algorytmu tego błędu (wydaje się być przypadkowo inny, za każdym razem świruje trochę inaczej). Może spróbuje od podstaw.

Dzięki...

konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

1. Wciskanie kodu na timeline to zło - szczególnie, że z tego co widzę to w drugiej klatce też musisz mieć jakiś kod... pewnie podobny do tego

2. Zaprzyjaźnij się z programowaniem obiektowym - wyjdzie Ci na dobre

3. Masz nieco dziwną składnie function { ... function { } }

4. Jeśli oczekujesz konkretnej pomocy, to wypadałoby wkleić link do projektu (fla + as) najlepiej w formie uproszczonej - obrazującej sedno problemu
Jacek Pietrzyk

Jacek Pietrzyk Progrmaista Ruby on
Rails

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

A jaki masz kod po naciśnięciu jednego z przycisków do zmiany bannerów?
Pewnie gotoAndPlay()? Pierwszy pomysł, to to że jak naciskasz taki przycisk, przechodzi do wykonywania następnej klatki, zanim TimerEvent z obecnej się wyczyści i może się coś motać :)

Poza tym programowanie na listwie czasowej to tak jak Dariusz pisze - zło.
Nie lepiej by było ten rotator, oprzeć na jakimś xmlu, gdzie miałbyś url każdego banera i czas trwania jego wyświetlania? Oprzeć to wszystko na jednej instancji timera bez zmieniania klatek?

Pozdrawiam

konto usunięte

Temat: Aplikacja przyśpiesza dwukrotnie. Chyba nie wiem gdzie...

Witajcie. Na pewno macie rację - spróbuje wyprowadzić wszystko co się da na zewnątrz i tym samym dokonać w myśleniu jakiegoś kroku naprzód ... :) Dzięki za pomoc - pozdrawiam.



Wyślij zaproszenie do