Umieszczanie kilku plików swf na tej samej stronie html

0

Jak w temacie. Oczywiście wiem jak umieścić jeden swf na stronie. Służy do tego <object>. Próbuje jednak osadzić w html dwa pliki swf i tutaj właśnie nie wiem. Zna się ktoś?

0

Nikt się nie zna.

A próbowałeś może (uwaga, będzie wiedza tajemna, nikomu nie mów!) umieścić DWA elementy <object>?

A tu masz przykład najbardziej poprawnego (w sensie: działającego w każdej przeglądarce) sposobu osadzenia Flasha:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="121" height="96">
  <param name="movie" value="/swf/logo-main.swf" />
  <param name="wmode" value="transparent" />
  <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="/swf/logo-main.swf" width="121" height="96">
    <param name="wmode" value="transparent" />
  <!--<![endif]-->
  Brak obsługi Adobe Flash. Zainstaluj odpowiednią wtyczkę.
  <!--[if !IE]>-->
    </object>
  <!--<![endif]-->
</object>

wmode oczywiście może być inne, ale chciałem pokazać w przykładzie jak parametry ustawić. I tak. Musisz podać dwa razy ścieżkę i wymiary.

0

Oczywiście. Tylko, że ja (możliwe, że dureń) zrobiłem mówiąc w skrócie o tak:

<object></object>
<object></object>

Nic to jednak nie dało,bo cały czas wyświetla mi na stronie tylko ten pierwszy. Kombinuję jak łysy pod górę wewnątrz kodu i też nic. Dlatego przyszedłem tutaj. Mam jeszcze prośbę: mógłbyś twój kod jakoś uprościć? tzn. tak bardziej symbolicznie. Z góry dzięki;-) Choć spróbuje przeanalizować także to co wrzuciłeś.

dzek69 napisał(a):

Nikt się nie zna.

A próbowałeś może (uwaga, będzie wiedza tajemna, nikomu nie mów!) umieścić DWA elementy <object>?

A tu masz przykład najbardziej poprawnego (w sensie: działającego w każdej przeglądarce) sposobu osadzenia Flasha:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="121" height="96">
  <param name="movie" value="/swf/logo-main.swf" />
  <param name="wmode" value="transparent" />
  <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="/swf/logo-main.swf" width="121" height="96">
    <param name="wmode" value="transparent" />
  <!--<![endif]-->
  Brak obsługi Adobe Flash. Zainstaluj odpowiednią wtyczkę.
  <!--[if !IE]>-->
    </object>
  <!--<![endif]-->
</object>

wmode oczywiście może być inne, ale chciałem pokazać w przykładzie jak parametry ustawić. I tak. Musisz podać dwa razy ścieżkę i wymiary.

0

Jeżeli chcesz, żeby na 100000% działało każdemu i wszędzie to nie ma tu co upraszczać.

Ale generalnie to tak:
1Dlen.jpg
tutaj podmieniasz ścieżkę do Twojego SWF, zamiast obu width i height wpisujesz wymiary.

Tyle.

Zamiast tekstu Brak obsługi Adobe Flash. Zainstaluj odpowiednią wtyczkę. możesz wstawić własny tekst, który wyświetli się gdy ktoś wtyczki nie ma.

Możesz też skorzystać z biblioteki swfObject w javascript, ale nie sądzę, że Ci to ułatwi, raczej jeszcze bardziej zamota (ale biblioteka ma swoje plusy, szczególnie w połączeniu z ww. metodą).

0

Okazuje się, że we flashu można to szybko zrobić bez dłubania

Ale jaki paskudny kod to generuje to o matko.

0
dzek69 napisał(a):

Okazuje się, że we flashu można to szybko zrobić bez dłubania

Ale jaki paskudny kod to generuje to o matko.

Hehe teraz mam z kolei inny problem. Mam kwadratowy obiekt, który w animacji się powiększa a potem w jego wnętrzu animuje się gradient. Przy pomocy actionscript 2 udało mi się to wszystko zapętlić tak, by w ostatniej klatce w nieskończoność animował się sam gradient, ale by sam obiekt istniał już bez zmiany swego kształtu. Dużo by gadać;-) Po prostu w ostatniej klatce w edytorze dopisałem gotoAndPlay(15) i tyle.

Tak tylko, że teraz podczas animacji tego gradientu chciałbym by dokładnie to samo działo się z następnym obiektem tzn. podczas animacji gradientu pierwszego obiektu,powiększał się następny obiekt i po dojściu do swej maksymalnej wielkości również animował się w nim inny gradient. I kłopot mam taki, że cały czas player odtwarza mi to poprzez polecenie gotoAndPlay(15).

Jak zatem to zrobić (we flashu 8 oczywiście), żeby osiągnąć niezależność linii czasowym tych dwóch obiektów? Nie wiem. Może z actionsript coś podziałać, ale chyba jeszcze jestem za kiepski.

0

Interesuje Cię to: http://hosted.zeh.com.br/mctween/ w wersji dla AS2 (nie wiem czy była dla AS3, bo we Flashu lata nie robiłem)

0
dzek69 napisał(a):

Interesuje Cię to: http://hosted.zeh.com.br/mctween/ w wersji dla AS2 (nie wiem czy była dla AS3, bo we Flashu lata nie robiłem)

Czy aby nie masz przypadkiem na myśli, po polsku, tworzenia animacji przy pomocy klatek pośrednich? Pytam,bo coś mi zaświtało, a googla translate nie tłumaczy słowa tween;-))) Szkoda, że ta strona jest po angielsku...;P

0
dzek69 napisał(a):

A tu masz przykład najbardziej poprawnego (w sensie: działającego w każdej przeglądarce) sposobu osadzenia Flasha:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="121" height="96">
  <param name="movie" value="/swf/logo-main.swf" />
  <param name="wmode" value="transparent" />
  <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="/swf/logo-main.swf" width="121" height="96">
    <param name="wmode" value="transparent" />
  <!--<![endif]-->
  Brak obsługi Adobe Flash. Zainstaluj odpowiednią wtyczkę.
  <!--[if !IE]>-->
    </object>
  <!--<![endif]-->
</object>

Witam,

Podbijam temat, z powodu sporego problemu z wyświetlaniem banerów swf. Powyższa metoda nie działa niestety w każdej przeglądarce, bo Chrome sobie z tym nie radzi. Konkretnie: mam 20-30 banerów jeden pod drugim. Zawsze w ten sposób osadzałem a od pewnego czasu Chrome zaczęła pokazywać tylko niektóre (FF i IE bez problemu). Widziałem ten problem na kilku różnych stronach. Czyli Chrome wyświetla mi z tych 30 banerów tylko np. 25. 5 pomija zostawiając puste pole. Odświeżę stronę - znowu kilka nie działa, ale już innych i tak w kółko - co raz to jakies nie działają, nie wiadomo czy przeglądarka się kieruje, bo jakby ciągle te same to by było wiadomo że o banery chodzi. Wychodzi że ta metoda osadzenia jest zła dla Chrome.
Jak zatem wstawić tyle banerów flash aby Chrome to wyświetlała poprawnie?

0

To raczej jakiś problem z Chrome (może jego wbudowana obsługa Flash sobie nie radzi), nie z osadzaniem.
Podaj linka do strony przedstawiającej ten problem, spróbujemy to zbadać i znaleźć obejście.

0
dzek69 napisał(a):

To raczej jakiś problem z Chrome (może jego wbudowana obsługa Flash sobie nie radzi), nie z osadzaniem.
Podaj linka do strony

Możliwe, Chrome działa tak od końca maja - wcześniej było ok., ale jest to problem ogólny.
Jako rozwiązanie podaje się osadzanie przez swfobject - wtedy wyświetla, tylko jakoś słabo kumam jak to zrobić przy tej ilości banerów i to róznych.
Przykładowa strona: http://www.twojebieszczady.net/fauna/eskulapa.php
Lewa kolumna - tam są banery jpg wstawiane przez OpenX a reszta z nich to swl'e. Na Chrome w tych miejscach powinny pojawić się puste pola, czyli przerwy bo banery są ściśle jeden pod drugim. Na górze strony, na lewo od nagłówka jest większy baner - ten też raz się wyświetla a raz puste miejsce.

0

Przetestowałem swfobject - rzeczywiście Chrome też widzi.
Gdyby pójść tą drogą - czy przy swfobject trzeba osobno wklejać kod javascript każdego banera w sekcję head? Czy da się to jakoś zautomatyzować?

1

Oczywiście, że się da.
Najlepiej zostaw te objecty jak są, następnie jak masz jQuery to praktycznie z górki, bo zrobisz coś w rodzaju:

$('object').each(function(){
  var src=$(this).attr('src'); // to jest oczywiscie błędne, to przykład pobrania atrybutu
  // var ...
  swfObject(id, src, i, inne, pobrane, parametry, z, objectow);
});

Jeżeli do swfobject wymagany jest id, to możesz dynamicznie przyznawać losowy ID w takiej pętli. Miej też na uwadze, że masz dwa elementy object, gdzie jeden jest wewnątrz drugiego. Te drugie odrzuć. Ew. wybierz tylko te wewnętrzne (jest łatwiej), i cofnij się "w górę" DOM.
Wszystko jest w dokumentacji jQuery.

Bez jQuery to troszkę bardziej skomplikowane - odsyłam do jakiegoś kursu poruszania się po DOM. Zacznij od tego.

0
dzek69 napisał(a):

Oczywiście, że się da.

Dziękują za sugestie - mam przeczucie że swfobject przyda się w przyszłości, prędzej czy później.
Co do samego problemu - wczoraj Chrome wypuściła aktualizację (27.0.1453.116), która naprawiła ten bug

1 użytkowników online, w tym zalogowanych: 0, gości: 1