Zaloguj się, aby obserwować  
Obserwujący 0
Bolek1985

Skąd można pobierać skrypty?

6 postów w tym temacie

Witam,

Potrzebuje w sumie jeden skrypt. Nie jestem pewien czy taki w ogóle istnieje ale podejrzewam ze juz ktoś taki napisał a moze jest w AE ja o tym nie wiem ;) Ale wracając do tematu. potrzebny jest mi skrypt podobny do "Sequencera"- Który o określoną liczbę klatek przesuwa "warstwę" w czasie. Tyle ze mi zależy na ustawianiu KeyFram'ów w warstwie.

Może wyjaśnię co robie to łatwiej będzie zrozumiec :P

Chce zrobić animację Albumu fotograficznego w którym przewracają sie kartki. Co kilka sekund każda. Problem w tym ze ty kartek będzie sporo i łatwiej byłoby to zrobić to za pomoca jakiegoś skryptu niż "ręcznie" z każdą warstwą. Ma ktoś jakieś pomysły?

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja znalazłem kod do Sequencer() w necie , wystarczy ze zapiszesz :) , nie testowałem ale powinno działać :P

import mx.transitions.Tween;

class Sequencer{

public var version:String="1.3";

public var className:String="Sequencer";

private var queue:Array;

private var interval:Number;

private var current:Number = 0;

private var cQueue:Object;

private var listener:Array;

public function Sequencer(){

trace("Sequencer initialized");

queue = [];

listener = [];

}

/*

dodaje do kolejki oraz definiuje rodzaj animacji

@param:

startDelay:Number - czas w milisekundach po jakim ma zostac wywolana kolejna sekwencja

content:MovieClip - element ktory animujemy

transParams:Object - obiekt zawierajacy parametry animacji:

prop:String - wlasciwosc MovieClipa ktora ma zostac zmieniona np. "_y", "_xscale" etc

func:Function - funkcja wyznaczajaca ruch obiektu np. mx.transitions.easing.Strong.easeOut,

begin:Number - pozycja startowa animowanego MovieClipu,

finish:Number - pozycja koncowa animowanego MovieClipu,

duration:Number - dlugosc trwania animacji np. 30

manager:Object - obiekt zawiera:

callFunc:Function - funkcja/metoda jaka zostanie wywolana po zakonczeniu animacji danej sekwencji

args:Array - parametry które maja zostać przekazane jako argumenty wywoływanej funkcji np. [1,2,3,"top"]

obj:Object - obiekt z jakiego ma zostac wywolana metoda zdefionwana w parametrze callFunc

*/

public function addTween(startDelay:Number, content:MovieClip, transParams:Object, manager:Object){

if(arguments.length >= 3){

queue.push({startDelay: startDelay, content: content, transParams:transParams, manager: manager});

}else{

trace('Sequencer: Brak wszystkich parametrów');

}

}

/*

dodaje do kolejki funkcje/metode do wywyłania

@param:

startDelay:Number - czas w milisekundach po jakim ma zostac wywolana kolejna sekwencja

manager:Object - obiekt zawiera:

callFunc:Function - funkcja/metoda jaka zostanie wywolana po zakonczeniu poprzedniej sekwencji

args:Array - parametry ktore maja zostać przekazane jako argumenty wywoływanej funkcji np. [1,2,3,"top"]

obj:Object - obiekt z jakiego ma zostac wywolana metoda zdefinionwana w parametrze callFunc

*/

public function addFunction(startDelay:Number,manager:Object){

if(arguments.length >= 2){

queue.push({startDelay: startDelay, manager: manager});

}else{

trace('Sequencer: Brak wszystkich parametrów');

}

}

/*

startuje sekwencje zaraz po wywolaniu tej metody

*/

public function start(){

getNext();

}

private function getNext(){

clearInterval(interval);

cQueue = queue[current];

if(cQueue.transParams != undefined){

startTween();

}else{

callFunction();

}

if(queue.length > current){

startDelay(cQueue.startDelay);

current++;

}

}

private function startTween(){

if(cQueue.manager.callFunc != undefined){

listener[current] = new Object();

listener[current].manager = cQueue.manager;

listener[current].onMotionFinished = function(){

this.manager.callFunc.apply(this.manager.obj, this.manager.args);

}

}

var tw=new Tween(cQueue.content, cQueue.transParams.prop, cQueue.transParams.func, cQueue.transParams.begin, cQueue.transParams.finish, cQueue.transParams.duration);

if(cQueue.manager.callFunc != undefined) tw.addListener(listener[current]);

}

private function callFunction(){

if(cQueue.manager.obj==undefined) cQueue.manager.obj=null;

cQueue.manager.callFunc.apply(cQueue.manager.obj, cQueue.manager.args);

}

/*

startuje sekwencje z opoznieniem np. 3000 milisekund (czyli 3 sekundy)

*/

public function startDelay(time:Number){

interval = setInterval(this, "getNext", time);

}

/*

ustawia odtwarzanie sekwencji od poczatku

*/

public function reset(){

current = 0;

}

/*

czysci dodane sekwencje

*/

public function clear(){

queue = [];

listener = [];

reset();

}

}

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki ququs gdybym jeszcze tylko wiedział od czego mam zacząć wklejanie :P nie wiem która linijka to początek a która koniec kodu :P

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przeklej od import mx.transitions.Tween; do ostatniej klamry

kolega ququs ładnie pokomentował ci kod więc jak ruszysz głową to może coś z tego ukleisz dla siebie. Jak będziesz miał kłopoty to pisz.

Najważniejsze żebyś spróbował :-D

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
:shock: jak dla mnie czarna magia. gdybym tylko znał podstawy... no nic poszukam w Google, poczytam a jak już będę miał głowę wielkości arbuza to wrócę i spróbuje coś wykombinować :P
0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować  
Obserwujący 0