bambosz Napisano 17 Październik 2011 Napisano 17 Październik 2011 Witam, drodzy forumowicze, poratujcie. Szefostwo kazało mi zrobić 2 proste banerki flash na stronę WWW (z tym nie miałem kłopotu). Po przygotowaniu obu projektów okazało się że na stronie może być zamieszczony tylko 1 plik swf w danej chwili (a pytałem jeden czy kilka ....), opcji dodania jakiegoś skryptu podmieniającego pliki nie mam (nie mam dostępu do strony, nie licząc opcji dodawania tekstu i podstron) :/. Jak w prosty sposób połączyć dwa pliki swf w jeden ciągły zapętlony ? Na sieci znalazłem tylko kilka stron z odnośnikami do średnio działających programów, które podobno to umożliwiają (nie umożliwiły :/). Nie znam się na action scrypt więc nie za bardzo jestem w stanie połączyć je od strony ... "programistycznej" ? Męczę te projekty w Adobe flash CS4/5, opcja import export nie jest w żadnym stopniu pomocna :/. Proszę ... POMOCY !!! xD Pozdrawiam bambosz. 1
bambosz Napisano 17 Październik 2011 Autor Napisano 17 Październik 2011 ola-f... ładuj je na zmianę to łatwo powiedzieć, trudniej zrobić :/ pogooglowałem trochę i trafiłem na różne takie dziwne funkcje typu: movieClip.loadMovie("Nazwapliku.swf); lub loadMovie(url:String, target:Object, [method:String]) : Void ale to nijak nie działa, co rusz to mi wywala jakieś błędy :/ działa mi to: var loader:Loader = new Loader(); loader.load(new URLRequest('3D.swf')); addChild(loader); ale jak teraz wczytać po tym 2 pliczek (wstawienie tego w 2 klatke nie pomogło ;p
bambosz Napisano 17 Październik 2011 Autor Napisano 17 Październik 2011 Tak próbowałem 2 loader wstawić w klatce po skończeniu pierwszej animacji ale wtedy odtwarzają się jakby jednocześnie ;\ w którejś kolejnej klatce dodałem var loader:Loader2 = new Loader(); loader2.load(new URLRequest('test.swf')); addChild(loader2); ciężko mi to idzie bo we flashu robię w zasadzie same animacje na timelinie :)
olaf Napisano 17 Październik 2011 Napisano 17 Październik 2011 to powinno działać. stwórz nowy plik o wy miarach i framerate tych dwóch. w Array(100,100) wpisz kolejno ilosc klatek animacji klipu, ktory będzie ładowany jako drugi, na drugim miejscu tego ładowanego jako pierwszy A='sciezka/plik'; - nazwa pliku i ściezka. pomin numer czyli np. flash/plik1.swf (musza miec takie same nazwy z roznica numeru np. plik1.swf i plik2.swf - mowa o tych ładujących się). To tyle - mam dziś zajeb wiec jak nie działa to nie pomogę ;) a pewnie nie dziala bo nie mam teraz jak sprawdzić. Na zmiane co okreslona ilość klatek wrzuca pliki swf. pominałem warunek gdy drugi sie nie załaduje zanim pierwszy sie odtworzy. var K1=new Array(100,100);var C=0; var V=1; var A='sciezka/plik'; function getM(A){var picL=new Loader(); picL.load(new URLRequest(A+V+'.swf')); picL.contentLoaderInfo.addEventListener(Event.INIT, gotIt);}; function gotIt(e:Event){V++; getM(A);}; this.addChild(getM(A)); this.addEventListener(Event.ENTER_FRAME,eFr); function eFr(e:Event){C++; if(C>=K1[V-1]){this.removeChildAt(0);if(V==2){V=1}else{V=2}; this.addChild(getM(A));C=0}} 1
bolitic Napisano 18 Październik 2011 Napisano 18 Październik 2011 (edytowane) ola-f: hehe, musisz popracować nad czytelnością tego co zapodajesz na forum :] w sumie pewnie dobrze napisałeś, ale nie czytając tego co Ty dałeś, ja proponuje coś takiego: package { import flash.display.Loader; import flash.display.MovieClip; import flash.events.Event; import flash.net.URLRequest; /** * ... * @author bolitic */ public class LoadingSwf { private var loaderSwf:Loader; private var mySwf:MovieClip; private var main:MovieClip; public function LoadingSwf(main:MovieClip) { this.main = main; loaderSwf = new Loader(); loaderSwf.load(new URLRequest("banner2.swf")); loaderSwf.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoaded); } private function onCompleteLoaded(e:Event):void { mySwf = loaderSwf.content as MovieClip; main.addChild(mySwf); mySwf.addEventListener(Event.ENTER_FRAME, checkIfEndOfSwf); } private function checkIfEndOfSwf(e:Event):void { if (mySwf.currentFrame == 100) { main.play(); } } } } uwagi: musisz dać w ostatniej klatce każdego banera: "stop()", gdyż ENTER_FRAME może nie zadziałać. Obiekt main, to pierwszy baner, który zarazem jest klasą główną aplikacji. Gdy banner2 bedzie na klatce 100, wówczas zacznie grać banner 1, czyli main:MovieClip. Pozdrawiam! EDIT: aha, i jeszcze jedno: ostatnia klatka każdego banera musi być bez żadnego kontentu, inaczej banner2.swf będzie przykrywał banner1 (main) Edytowane 18 Październik 2011 przez bolitic 1
bambosz Napisano 18 Październik 2011 Autor Napisano 18 Październik 2011 Panowie wielki dzięki. Wszystkie te kody napewno się przydadzą, bo będę musiał stworzyć jakiś flashowy loader bo się wykończę xD. Dziś sobie poradziłem .... w sposób chyba najprostszy.... wszystkie warstwy z 1 projektu w katalog, kopiowanie, wklejanie do 2 projektu i zabawa w przesuwanie xD. Jeszcze raz dzięki. Ps. Ola-f, dzięki za pomoc, ale jak dla mnie to to było kompletnie nieczytelne (czyt. niezrozumiałe) xD.
olaf Napisano 18 Październik 2011 Napisano 18 Październik 2011 musisz popracować nad czytelnością nom, mam wbudowany obfuscator w palce ;)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się