We closed this forum 18 June 2010. It has served us well since 2005 as the ALPHA forum did before it from 2002 to 2005. New discussions are ongoing at the new URL http://forum.processing.org. You'll need to sign up and get a new user account. We're sorry about that inconvenience, but we think it's better in the long run. The content on this forum will remain online.
IndexProgramming Questions & HelpSyntax Questions › Applet does not start
Page Index Toggle Pages: 1
Applet does not start (Read 408 times)
Applet does not start
Mar 23rd, 2009, 11:23pm
 
Hi all, I made a sketch that reads an rss feed and shows them as output.
The application works well but when I export to applet it doesn't start; here you can find the not-working applet:

http://www.paolotonon.com/applet/index.html

I read about external domains so I prepared a same domain rss parser of feed:

feed://www.paolotonon.com/applet/rss.php?id=twitter

Can you help me please? Here is the code I wrote:


Code:

int w= 1024;
int h = 768;
int numColori = 6;
int coefficenteFont = 6;
int variazione = 40;
int numPeccati;
int peccatoAttuale = 0;
int contatoreNeri = 0;
int persistenza = 7;
int numeroFoto= 21;

// variabili funzionali
PImage sinner;
PImage sinnerColor;
boolean fotoAttiva = false;
color black = color(0,0,0);
String lines[];
String[] lista;
XMLElement xml;
String frasi = "";

// Per esportare in full screen...

/*static public void main(String args[]) {
 PApplet.main(new String[] { "--present", "confession" });
}*/

void setup(){  
 size(1024,768);
 noStroke();
 smooth();
 textAlign(CENTER);
 frameRate(50);
 background(0,0,0);
}


void draw(){
 if (fotoAttiva == false || contatoreNeri > persistenza){
   float m = millis();
   save(m+".jpg");
   contatoreNeri = 0;
   //background(0);
   caricaSinner();
   leggiRSS();
   //image(sinner,0,0);
   // Carica il file di testo con le frasi
   lines = lista;
   numPeccati = lines.length;
 }
 else {
   int x = int(random(width));
   int y = int(random(height));
   int larghezzaOk = 0;
   int altezzaOk = 0;
   color pix = sinner.get(x, y);
   color pixColor = sinnerColor.get(x, y);
   //println(pixColor);
   int larghezza = analizzaPixelLarghezza(x,y,pix);
   int altezza = analizzaPixelAltezza(x,y,pix);
   int dimensioneFont = int(larghezza/coefficenteFont );
   if (dimensioneFont <8 ){
     dimensioneFont = 8;
   }
   else if (dimensioneFont >25 ){
     dimensioneFont = 25;    
   }
 
   fill(pixColor,210);

   // Carica un set di font
   PFont font1 = loadFont("font/Helvetica-20.vlw");
   PFont font2 = loadFont("font/Georgia-20.vlw");
   /* PFont font3 = loadFont("font/CenturySchoolbook-50.vlw");
    PFont font4 = loadFont("font/LucidaFax-48.vlw");
    PFont font5 = loadFont("font/TrebuchetMS-50.vlw");
    PFont font6 = loadFont("font/Perpetua-Italic-50.vlw");
    PFont font7 = loadFont("font/BodoniMT-50.vlw"); */

   PFont[] leFont = {
     font1, font2    };

   int numRandom = int(random(2));    
   textLeading(dimensioneFont/3);
   textFont(leFont[numRandom], dimensioneFont);
   //textFont(font1, dimensioneFont);
   loadPixels();
   // Analizza l'output a schermo controllando i pixel neri
   if  (pixels[(width*y)+x] == black){
     contatoreNeri = 0;
     while(pixels[(width*y)+x+larghezzaOk] == black && larghezzaOk < larghezza && x+larghezzaOk < width){
       larghezzaOk++;
     }
     //println("larghezzaOk="+larghezzaOk);
     while(pixels[(width*(y+altezzaOk))+x] == black && altezzaOk < altezza && y+altezzaOk < height){
       altezzaOk++;
       if (y+altezzaOk == height){
         break;
       }
     }
     updatePixels();
     // Scrive il testo
     textAlign(LEFT);
     text(lines[peccatoAttuale], x, y,larghezzaOk,altezzaOk);    
     // Determina il peccato da visualizzare nel prossimo ciclo
     if (peccatoAttuale == (numPeccati-1)){
       peccatoAttuale = 1;
     }
     else {
       peccatoAttuale++;
     }

   }
   else{
     // gestire il contatore per il cambio di foto
     contatoreNeri++;
   }
 }
}

void caricaSinner(){
 int  idFoto= int(random(numeroFoto));
 sinner = loadImage("foto/foto"+idFoto+".jpg");
 sinner.filter(POSTERIZE, numColori);
 sinnerColor = loadImage("foto/foto"+idFoto+".jpg");
 fotoAttiva = true;
}

int analizzaPixelLarghezza(int posX, int posY,color colore){
 color riferimento;
 int larghezza = 1;
 while(sinner.get(posX+larghezza,posY+(larghezza/coefficenteFont))==colore){
   larghezza++;
 }
 if (larghezza < 10){
 larghezza = 10;
 }
 return larghezza;
}

int analizzaPixelAltezza(int posX, int posY,color colore){
 color riferimento;
 int altezza = 1;
 while(sinner.get(posX,posY+altezza)==colore){
   altezza++;
 }
 if (altezza < 10){
 altezza = 10;
 }
   return altezza;
}

void leggiRSS(){
 xml = new XMLElement(this, "http://www.paolotonon.com/applet/rss.php?id=twitter&cachetime=5");
 XMLElement channel = xml.getChildren()[0];
 for (int i=0; i < channel.getChildren().length; i++){
   // Salta i primi 3 nodi dell'RSS
   if (i >4 ){
     String title = channel.getChildren()[i].getChildren()[0].getContent();
     // toglie il nome utente ":" e spazio
     String peccato = title.substring(12);  
     if (frasi == ""){
       frasi = peccato;  
     }
     else{
       frasi = frasi+"^"+peccato ;
     }  
   }
 }
 lista = split(frasi, '^');
 /*if(frasi!= ""){
   saveStrings("data/testo/peccati.txt", lista);
 }*/
}


void keyPressed() {
 if (key == 'i' || key == 'I') {
   float m = millis();
   save(m+".jpg");
 }
}

void mouseReleased() {
contatoreNeri = persistenza+1;
}



Re: Applet does not start
Reply #1 - Mar 30th, 2009, 9:32am
 
It was only a problem of signing the applet, the solution is explained here:

http://processing.org/hacks/hacks:signapplet?s=sign%20applet

If you want to see the applet in action, this way:

http://www.paolotonon.com/confession/
Page Index Toggle Pages: 1