PDA

Visualizza versione completa : Help Loading!!!



Endo
16-01-2003, 13.32.13
Ola, avrei una semplice ma annosa domanda da porvi: si tratta di flash, mi chiedevo come si fa a creare una finestra di loading affinchè non si debba attendere a schermo vuoto durante il caricamento della pagina....tipo la prima schermata del sito di Kazze (www.IdeaJuice.net) (davvero complimenti,gran bel sito!!!)

Come fare dunque?

ais001[db]
17-01-2003, 01.49.50
beh... non è altro che un normalissimo .swf fatto con Flash MX... :rolleyes:



"comprati" ( ;) ) Flash MX (o se vuoi Flash5 che è + semplice x un principiante) e studiatelo mediante le lezioni... se sai usare i layer e gli elementi vettoriali con gli apps di grafica... sai già fare un sito in Flash... ;)

follettomalefico
17-01-2003, 17.32.03
Crea un oggetto al frame 1, di tipo MovieClip, al quale aggiungerai questo ActionScript:


// ----------------------------------------------------------------------
// Preloader v1.0
// ----------------------------------------------------------------------
onClipEvent (enterFrame)
{
_root.objLoader.sPercent = _root.movBody.getBytesLoaded() / _root.movBody.getBytesTotal() * 100 + "%";

if (_root.movBody.getBytesLoaded() >= _root.movBody.getBytesTotal())
{
_root.objLoader.unloadMovie();
movBody.play();
}
}

E al frame 2 inizierai il filmato vero e proprio.

Nota: al frame 1, dovrai mettere uno stop();, mi raccomando :)


Info sul codice:
Questo codice fa il preloading di un OGGETTO chiamato movBody e posizionato sulla root, che sta venendo caricato con un loadMovie (sul frame 1). Quindi, lo stop che ti ho segnalato sopra non va fatto al movie attuale ma a movBody.stop();.

Inoltre, il preloader ha un nome, che è objPreloader, anch'esso sulla root.

ais001[db]
19-01-2003, 21.11.39
secondo me non ha capito una gamba di Wirth di tutto quello che hai scritto... cmq... :asd:

Endo
20-01-2003, 14.40.29
no beh, ais, flash lo so usare,mi serviva giusto quello script....anche se in effetti non mi è chiara la storia del root:rolleyes: .....devo rinominare l'oggetto creato giusto?

follettomalefico
20-01-2003, 18.32.45
_root è la base su cui nasce ogni filmato flash :)

Quello script fa il preloading di un filmato caricato su un oggetto (movBody, chiamato con movBody.loadMovie("filmato.swf");), root sta ad identificare univocamente il livello in cui si trovan tali filmati.

Con pochissime modifiche diventa un preloader per il filmato stesso. :)

Brus
21-01-2003, 00.12.16
Foll, usare nomi + semplici, no? :D
Scritti così sembrano tutte parole di sintassi di flash o come cavolo si chiamano :D

follettomalefico
21-01-2003, 13.07.56
Originally posted by Brus
Foll, usare nomi + semplici, no? :D
Scritti così sembrano tutte parole di sintassi di flash o come cavolo si chiamano :D

:doubt:


Quelli sono nomi che io uso e che io riconosco e che utilizzano un dialetto importato da uno di quelli usati in VB. Ed è uno stile di programmazione molto efficiente :)

Per gli oggetti si usano 3 lettere di identificazione del TIPO di oggetto che si usa (in questo caso "mov") più un nome identificativo dell'oggetto stesso.

Quindi: movBody.

Per le variabili invece si utilizza una sola lettera identificativa ("s", cioè stringa) che precede sempre il nome.

Quindi: sProgress.

Queste sono le uniche due parole scritte da me, le altre sono tutte sintassi Flash (ActionScript).

Endo
21-01-2003, 16.09.03
:D tanks:D

follettomalefico
21-01-2003, 18.47.04
Link: http://www.omanserv.com/tutorials/tut2.html

:foll:

Endo
22-01-2003, 15.37.11
Originally posted by follettomalefico
Link: http://www.omanserv.com/tutorials/tut2.html

:foll:

sei tropppo il migliore!!!!:D :heart:

follettomalefico
23-01-2003, 20.37.42
Ho trovato anche questo (sto lavorando con i Componend Flash MX in questo periodo):
http://www.warp9.it/

Endo
24-01-2003, 14.31.04
ma qunte ne sai?:teach: :birra: :D

Ðark..@ngel
24-01-2003, 15.23.09
le sa tutte! :D

follettomalefico
24-01-2003, 17.04.28
Asd, beh non esageriamo... cmq vi posto quello su cui ho bestemmiato negli ultimi 2 gg, prima di riuscire a cavarci fuori qualcosa:




#initclip 1
function FClassButtonP()
{
this.init();
}

FClassButtonP.prototype = new MovieClip();
Object.registerClass("FButtonP", FClassButtonP);

FClassButtonP.prototype.init = function()
{
super.init();
this.setClickHandler(this.clickHandler);
}

FClassButtonP.prototype.setClickHandler = function(chng, obj)
{
this.handlerObj = (arguments.length<2) ? this._parent : obj;
this.clickHandler = chng;
}

FClassButtonP.prototype.executeCallBack = function()
{
this.handlerObj[this.clickHandler](this);
}

FClassButtonP.prototype.onRelease = function ()
{
this.executeCallBack();
}
#endinitclip


Questo serve per, all'interno del Frame 1 di un Component, creare i metodi di gestione del click e renderli gestibili da una funzione esterna (come i Component nativi di FlashMX).

Il bello è che dopo aver cercato in giro su una badilata di siti (google incluso, of course)... alla fine ho fatto il tutto semplicemente analizzando il codebase degli altri componenti nativi di FlashMX... porkaccia :D



Non è inerente al topic... ma dato che io ci ho perso troppe ore, chissà che a qualcuno non serva... :foll:
(nel caso interessasse ovviamente posso spiegare meglio) ;)

Endo
29-01-2003, 13.07.50
Spiega spiega :daifoll: che sono curioso...

follettomalefico
29-01-2003, 13.21.04
:foll:



Allora, praticamente, quel codice serve nella creazione di un COMPONENTE e va inserito sul frame 1.


Per creare un componente si crea un normale movieclip, poi però si apre la libreria, tasto dx sul movieclip e si seleziona "Component".
Qui si inseriscono tutte le proprietà che poi andranno ad essere veriabili all'interno del component stesso. Quindi, definendo ad esempio una proprietà come "Label", "varLabel", "Testo", "Stringa", si definisce una proprietà che avrà nome Label (nel pannello delle proprietà del component, sotto), che creerà una variabile di nome varLabel, che avrà proprietà di default "Testo" di tipo "Stringa".

Questa variabile poi sarà liberamente utilizzabile all'interno del Component (con il nome varLabel, of course).


Ora, quel codice, crea una classe di nome "FClassButtonP" definita come New MovieClip (quindi eredita tutte le proprietà del movieclip stesso). e con il comando Object.registerClass lega tale classe al nome che definiremo/avremo definito nella proprietà Linkage del componente (in questo caso: "FButtonP").

In questo modo si rende l'oggetto "visibile" a tutto il movie esterno e se ne potranno ridefinire le caratteristiche.

Gli altri protorypes invece non fanno altro che definire la modalità di "Click" del pulsante (si può ridefinire quasi tutto).

In particolare io nella configurazione del Component avevo definito una variabile clickHandler che serve a poter richiamare una funzione esterna al Component stesso da eseguire. Quindi:

setClickHandler
Definisce l'oggetto "_parent" sul quale si troverà tale funzione richiamata e ridefinisce il clickHandler (non essenziale *credo* ma l'ho lasciato).

Fatto questo si può usare la funzione executeCallback che non fa altro che collegarsi al _parent e prendere la funzione che abbiamo definito come clickhandler.
executeCallback viene quindi richiamata, secondo il prototype sotto, a ogni click del mouse :)



E' un po' na palla neh? :foll:

Endo
30-01-2003, 13.38.01
non ti passa più....però è utile...:p