Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pętla i instrukcje warunkowe
clapton4321
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.11.2012

Ostrzeżenie: (0%)
-----


Witam,
mam około dwudziestu instrukcji warunkowych dotyczących różnych sposobów animacji zdjęć. Każda animacja z względu na jej złożoność realizowana jest w pętli for, która to generuje ustaloną ilość elementów, które są potrzebne do wykonania danego efektu wizualnego na zdjęciu. Większość tych efektów jest bardzo podobna do siebie, tzn, np w jednych efekcie używam opacity, a w innym operuje na width lub height.
Jaki sposób jest bardziej optymalny:
1. czy lepiej każdemu efektowi przypisać nową pętlę, która będzie realizowała daną animację (minusem jest powielanie kilkunastu linijek kodu)
2. A może lepiej utworzyć jedną pętlę i za pomocą instrukcji warunkowych tworzyć wyjątki (różnice dla aktualnie wylosowanej animacji).

Proszę o wasze opinie na ten temat.
Go to the top of the page
+Quote Post
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Lepiej zastosować funkcję z parametrem. Jako parametr podasz 'opacity', 'width' czy 'hight', a w kodzie
Kod
cosCoZmieniasz[ zmienna ] = 'nowa wartosc';


Dla efektów bardziej złożonych robisz switch-a:
Kod
switch( zmienna ){
case 'superEfekt1':
    //.....
    break;
case 'superEfekt2':
    //.....
    break;
default:
  cosCoZmieniasz[ zmienna ] = 'nowa wartosc'; // czyli to gdy zmieniasz 'opacity', 'width' czy 'hight'
}


Ten post edytował kamil4u 24.11.2012, 20:19:05
Go to the top of the page
+Quote Post
clapton4321
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.11.2012

Ostrzeżenie: (0%)
-----


Problem jest w tym, że czasami podmieniam jakąś wartość a innym razem dodaje lub odejmuje jakieś wartości odpowiedzialne za daną animację.
Może inaczej się spytam:
co jest lepsze:
1. Tworzenie pętli która reazlizuje wybrany efekt (większa ilość kodu ale mnie zadań do realizacji w ciele pętli
2. Instrukcje warunkowe w ciele pętli (mniejsza ilość kodu ale więcej zadań do wykonania wewnątrz pętli, np, pętla ma 20 cykli, przy dwudziestu instrukcjach warunkowych daje to do 400 dodatkowych zadań nim pętla zakończy działaniie - jeżeli źle to rozumiem to proszę mnie poprawić)

Z góry dziękuję za odpowiedzi

Ten post edytował clapton4321 24.11.2012, 20:37:15
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Zrób if-y lub switch i dodatkowo każdy efekt wrzuć do funkcji, dzięki temu będziesz miał większy porządek w kodzie.

I wklej tu ze dwa efekty to może da się wymyślić coś lepszego.

Cytat
co jest lepsze:

Nic nie jest lepsze. W tym przypadku bardziej bym się skupił na estetyce kodu, żebyś w przyszłości mógł szybko coś poprawić. 20 cykli to nic( chyba, ze w środku masz skomplikowane operacje, ale wtedy należy optymalizować te operacje. ) Tak samo sprawdzenie warunku if długo nie trwa. Jeżeli masz tego naprawdę dużo to użyj switch, ale różnica będzie niezauważalna dla zwykłego człowieka.

--edit--
Cytat
Cytat
Problem jest w tym, że czasami podmieniam jakąś wartość a innym razem dodaje lub odejmuje jakieś wartości odpowiedzialne za daną animację.

Możesz dorzucić drugi parametr określający jaką operację należy zrobić (IMG:style_emoticons/default/wink.gif)

Ten post edytował kamil4u 24.11.2012, 20:57:53
Go to the top of the page
+Quote Post
clapton4321
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.11.2012

Ostrzeżenie: (0%)
-----


Efekty mam w swichu i każdy case ma nazwę efektu plus funkcję realizującą ten efekt.

Zmagałem się z dwoma możliwościami:

1.

  1. switch(sprawdzanie efektu){
  2.  
  3. case 'nazwa efektu 1':
  4. case 'nazwa efektu 2':
  5. funkcja 1(jakies zmienne);
  6. break;
  7.  
  8. case 'nazwa efektu 3':
  9. case 'nazwa efektu 4':
  10. funkcja 2(jakies zmienne);
  11. break;
  12. };
  13.  


W tym punkcie instrukcje warunkowe są w funkcjach, które to właśnie skadają się m.in z pętli

2

  1. switch(checkData){
  2.  
  3. case 'nazwa efektu 1':
  4. funkcja 1(jakies zmienne);
  5. break;
  6.  
  7. case 'nazwa efektu 2':
  8. funkcja 2(jakies zmienne);
  9. break;
  10.  
  11. case 'nazwa efektu 3':
  12. funkcja 3(jakies zmienne);
  13. break;
  14.  
  15. case 'nazwa efektu 4':
  16. funkcja 4(jakies zmienne);
  17. break;
  18. };
  19.  

W tym punkcie nie ma instrukcji warunkowych, poniważ każdy efekt jest wo oddzielnym case

Dzięki za odpowiedź, jakiś czas się nad tym zastanawiałem, ale też nie mogłem znaleźć odpowiedzi który sposób będzie lepszy

Ten post edytował clapton4321 24.11.2012, 21:12:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 13:31