


Abbiamo visto la scorsa volta in maniera veloce come si crea uno sfondo per Enlightenment 17; ora vi darò un altro paio di dritte per raffinare un po’ gli sfondi, usando il metodo della comparsa del logo dopo un tot di tempo di attesa, anche in questo caso la creazione dei codici per generare questo particolare effetto non è complicato. ![]()
Innanzitutto, andate a scaricare questo file; stavolta vi propongo un file Edje già compilato; come fare a ritrasformarlo in sorgente? Con questo semplice comando:
edje_decc nomefile.edj
verrà creata una sottocartella nomefile contenente tutti i sorgenti (sia immagini che codice). Ora passiamo all’analisi vera e propria del nostro codice sorgente, come l’altra volta, ma stavolta analizzerò solo il necessario per generare l’effeto ritardo:
innanzitutto notiamo tra le images questo file:
image: "empty.png" FRAME;
Questo file, un’immagine png da 1×1 pixel trasparente, è il componente chiave per l’effetto ritardo: difatti, scorriamo di poco il nostro file e vediamo questa sezione in collections/parts:
part {
name: "empty"; //Zona nulla per dare l'effetto del nulla
description {
state: "default" 0.0;
min: 1 1;
max: 1 1;
align: 0 0;
image {
normal: "empty.png";
tween, "empty.png";
}
Visto il pezzo di codice, ci si rende conto a cosa puntiamo: con questo pixel trasparente, generiamo una pseudo-animazione lunga quanto l’intervallo che intercorre tra una vera animazione e l’altra.
Ora manca la parte relativa ai programmi: nel sorgente ne abbiamo solo due:
programs {
//Programma per la visualizzazione del logo
program {
name: "logo_rotator"; //nome del programma
signal: "show";
source: "";
action: STATE_SET "default" 0.0;
transition: LINEAR 3.0; //Il numero rappresenta la durata dell'animazione in secondi
target: "logo"; //imposta l'istanza su cui avverrà l'animazione
after: "wait"; //programma da eseguire al termine (in questo caso, rieseguendo sempre lo stesso pezzo, generiamo un loop)
}
program {
name: "wait"; //nome del programma
signal: "show";
source: "";
action: STATE_SET "default" 0.0;
transition: LINEAR 30.0; //Il numero rappresenta la durata dell'animazione in secondi
target: "empty"; //imposta l'istanza su cui avverrà l'animazione
after: "logo_rotator"; //programma da eseguire al termine (in questo caso, rieseguendo sempre lo stesso pezzo, generiamo un loop)
}
}
Il pezzo parla già da solo: semplicemente alterniamo il programma “wait” (che contiene il pixel trasparene) con il “logo_rotator”, l’animazione vera e propria.
Con questo è tutto.


You may be the one to comment first. Please leave your message below.








