Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16

    Problema con img e Xml...

    Ciao a tutti, cerco aiuto con una galleria xml.
    Come faccio, una volta caricate le img, a fare in modo che si adattino al filmato?

    Spiego meglio: ho un swf che mi carica le img da un database xml, solo che vorrei che le img, essendo di dimensioni maggiori rispetto allo stage, si adattassero a delle dimensioni da me stabilite.
    Come faccio?
    Aiutatemi...

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    devi caricarle con un preload, al termine del quale, fare il ridimensionamento secondo le impostazioni che preferisci

    se stai su Flash MX 2004 o superiore, ti consiglio di utilizzare la classe MovieClipLoader per gestire il caricamento (trovi il link ad un articolo che ne introduce l'utilizzo nella mia firma)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Non ho capito molto bene...
    Me lo spieghi in modo più semplice per favore?
    Scusami, ma non sono Tanto esperto...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    ti posto lo script col quale carico le img, così forse mi dici come fare a dimensionarle:

    function loadXML(loaded) {
    if (loaded) {
    xmlNode = this.firstChild;
    image = [];
    description = [];
    total = xmlNode.childNodes.length;
    for (i=0; i<total; i++) {
    image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
    description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
    }
    firstImage();
    } else {
    content = "file not loaded!";
    }
    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("images.xml");
    /////////////////////////////////////
    listen = new Object();
    listen.onKeyDown = function() {
    if (Key.getCode() == Key.LEFT) {
    prevImage();
    } else if (Key.getCode() == Key.RIGHT) {
    nextImage();
    }
    };
    Key.addListener(listen);
    previous_btn.onRelease = function() {
    prevImage();
    };
    next_btn.onRelease = function() {
    nextImage();
    };
    /////////////////////////////////////
    p = 0;
    this.onEnterFrame = function() {
    filesize = picture.getBytesTotal();
    loaded = picture.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize) {
    preloader.preload_bar._xscale = 100*loaded/filesize;


    } else {
    preloader._visible = false;
    if (picture._alpha<100) {
    picture._alpha += 10;
    }
    }
    };
    function nextImage() {
    if (p<(total-1)) {
    p++;
    if (loaded == filesize) {
    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();
    }
    }
    }
    function prevImage() {
    if (p>0) {
    p--;
    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();
    }
    }
    function firstImage() {
    if (loaded == filesize) {
    picture._alpha = 0;
    picture.loadMovie(image[0], 1);
    desc_txt.text = description[0];
    picture_num();
    }
    }
    function picture_num() {
    current_pos = p+1;
    pos_txt.text = current_pos+" / "+total;
    }



    come fare?

    Avevo pensato di inserire:

    picture._width = 100;
    picture._height = 100;

    ma nn so dove...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per fare quello che chiedi hai bisogno di "intercettare" il momento in cui hai caricato completamente il file esterno nel filmato, e questo lo puoi fare solo utilizzando una funzione che verifichi passo per passo il caricamento del file esterno... a caricamento effettuato, lo stesso preload si occuperà di assegnare le dimensioni che vuoi al clip che contiene il file caricato dall'esterno, modificandolo di conseguenza

    il problema è che i preload classici si fermano poco prima che il file esterno sia effettivamente caricato e fruibile, perciò capita spesso che non portino a termine le azioni assegnate a caricamento avvenuto,

    mentre il MovieClipLoader ha dei metodi ed eventi tali da poter essere sicuri al 100% sul successo del codice utilizzato

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Si, ma come si usa?
    Non ci ho capito molto...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Nessuno mi da una mano?

  8. #8
    Originariamente inviato da aleros82
    ti posto lo script col quale carico le img, così forse mi dici come fare a dimensionarle:

    function loadXML(loaded) {
    if (loaded) {
    xmlNode = this.firstChild;
    image = [];
    description = [];
    total = xmlNode.childNodes.length;
    for (i=0; i<total; i++) {
    image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
    description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
    }
    firstImage();
    } else {
    content = "file not loaded!";
    }
    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("images.xml");
    /////////////////////////////////////
    listen = new Object();
    listen.onKeyDown = function() {
    if (Key.getCode() == Key.LEFT) {
    prevImage();
    } else if (Key.getCode() == Key.RIGHT) {
    nextImage();
    }
    };
    Key.addListener(listen);
    previous_btn.onRelease = function() {
    prevImage();
    };
    next_btn.onRelease = function() {
    nextImage();
    };
    /////////////////////////////////////
    p = 0;
    this.onEnterFrame = function() {
    filesize = picture.getBytesTotal();
    loaded = picture.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize) {
    preloader.preload_bar._xscale = 100*loaded/filesize;


    } else {
    preloader._visible = false;
    if (picture._alpha<100) {
    picture._alpha += 10;
    }
    }
    };
    function nextImage() {
    if (p<(total-1)) {
    p++;
    if (loaded == filesize) {
    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();
    }
    }
    }
    function prevImage() {
    if (p>0) {
    p--;
    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();
    }
    }
    function firstImage() {
    if (loaded == filesize) {
    picture._alpha = 0;
    picture.loadMovie(image[0], 1);
    desc_txt.text = description[0];
    picture_num();
    }
    }
    function picture_num() {
    current_pos = p+1;
    pos_txt.text = current_pos+" / "+total;
    }



    come fare?

    Avevo pensato di inserire:

    picture._width = 100;
    picture._height = 100;

    ma nn so dove...
    la butto giù

    se provi ad inserire le dimensioni
    picture._width = 100;
    picture._height = 100;

    qua dentro

    if (loaded != filesize) {
    preloader.preload_bar._xscale = 100*loaded/filesize;


    } else {
    preloader._visible = false;

    picture._width = 100;
    picture._height = 100;

    if (picture._alpha<100) {
    picture._alpha += 10;
    }
    }

    boh prova un pò anche se dovresti forse cancellare quell'enterframe quando la foto è caricata
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    Ok, provo e ti faccio sapere...

    Niente da fare.
    Mica sapete come fare a impostare la dimensione da XML?

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    aleros82 ti ho dato le indicazioni e gli strumenti per fare quanto chiedi, di più posso solo farlo al posto tuo,
    non te la prendere, ma dovresti studiare qualche base di actionscript se lo vuoi usare o al massimo copiare da qualche parte, il forum è pieno di discussioni sulla classe MovieClipLoader, con esempi allegati
    da XML fai punto e accapo, perchè comunque per assegnare le nuove dimensioni devi fare il preload dell'immagine

    allora ascolta, partiamo dal principio, è giusto che tu sappia, prima di usare la classe MovieClipLoader, che cosa è un preload e come si crea e utilizza.. poi l'utilizzo della classe dovrebbe risultarti più chiaro

    guida -> http://flash.html.it/articoli/leggi/...lmato-esterno/

    poi un esempio semplice di quello che dovresti scrivere per usare la classe MovieClipLoader come serve a te

    Codice PHP:
    var mcl = new MovieClipLoader();
    var 
    obj = new Object();
    obj.onLoadInit = function(target){
    // qui le azioni per il ridimensionamento
    target._width 100;
    target._height 200;
    }
    mcl.addListener(obj);
    // bada ora, questa riga sostituisce il LoadMovie
    mcl.loadClip("immagine_da_caricare.jpg"clip_su_cui_caricare);
    // quindi al posto del loadMovie devi usare il loadClip con la sintassi proposta 
    spero che la cosa risulti più chiara dopo esserti documentato come ti ho indicato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.