Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    225

    problema createTextField

    Buongiorno a tutti. Nella homepage del mio sito ho incolonnato, sulla sinistra una preview delle 3 news più recenti (i primi caratteri) e vorrei lasciare ad un mc la possibilità di aprire tutta la news coprendo parte della homepage con un rettangolo di colore pari allo sfondo a cui sovrappongo un text.
    Con il codice:

    Codice PHP:
    function Impagina () {
        var 
    xstart:Number=10;
        var 
    ystart:Number=60;
        
    testo = new Array();
        for(
    i=0;i<3;i++){
            
    _root.attachMovie("clipmsg""clipmsgNews"+ithis.getNextHighestDepth());
            
    // attribuisco le coordinate di partenza dei mc
            
    _root["clipmsgNews"+i]._x xstart
            _root
    ["clipmsgNews"+i]._y ystart+i*105;
            
    // popolo i mc
            
    _root["clipmsgNews"+i].news.TitoloNews.htmlText UltimoDiTitoloNews[i];
            
    _root["clipmsgNews"+i].news.DataNews.htmlText UltimoDiDataNews[i];
            
    testo[i]= substring(UltimoDiContenutoNews[i].split("[b]").join("
    "
    ),0,90) + "..."
            
    _root["clipmsgNews"+i].news.ContenutoNews.html true;
            
    _root["clipmsgNews"+i].news.ContenutoNews.htmlText testo[i];
            
    //comportamento del pulsante della news
            
    _root["clipmsgNews"+i].news.leggi_tutto.onRelease=function(){
                var 
    my_color:Color = new Color(this);
                
    trace(this " " i)
                
    //creo un rettangolo nero
                
    this.createEmptyMovieClip("zoom_news"+ithis.getNextHighestDepth());
                
    this["zoom_news"+i].lineStyle(0,0x000000);
                
    this["zoom_news"+i].beginFill(0x000000100);
                
    this["zoom_news"+i].moveTo(100,-50);
                
    this["zoom_news"+i].lineTo(100,205);
                
    this["zoom_news"+i].lineTo(590,205);
                
    this["zoom_news"+i].lineTo(590,-50);
                
    this["zoom_news"+i].lineTo(100,-50);
                
    this["zoom_news"+i].endFill();
                
    //creo una label su rettangolo
                
    this.createTextField("zoom_news_label"+ithis.getNextHighestDepth() , 100, -50490255);
                
    trace(this["zoom_news_label"+i])
                
    _root["zoom_news_label"+i].multiline true;
                
    _root["zoom_news_label"+i].selectable false;
                
    _root["zoom_news_label"+i].wordWrap true;
                var 
    my_fmt:TextFormat = new TextFormat();
                
    my_fmt.color 0x000000;
                
    my_fmt.bold true;
                
    my_fmt.font "_sans";
                
    my_fmt.size 10;
                
    my_fmt.align "left";
                
    _root["zoom_news_label"+i].html true;
                
    _root["zoom_news_label"+i].htmlText UltimoDiContenutoNews[i].split("[b]").join("
    "
    );
                
    _root["zoom_news_label"+i].setTextFormat(my_fmt);
                
    my_color.setRGB(0x00ffff);
            }
    //fine funzione
        
    }    

    Riesco in effetti a creare correttamente le 3 preview. Mi rimangono alcuni problemi irrisolti:
    1. La creazione del rettangolo nero funziona, la createTextField invece non sortisce alcun effetto.
    2. Il trace(this + " " + i) posto per controllo mi mostra che al comportamento del pulsante è sempre associato i=3 e non 0, 1 e 2 come mi aspetterei.
    3. Ovviamente la creazione di rettangolo e campo testo ha coordinate relative all'mc di generazione e non ho una posizione fissa

    La prima domanda quindi è: sto usando il metodo giusto? Se si, beh, ho 3 domande senza risposta
    In attesa...grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Un paio di cose per cominciare:

    Codice PHP:
    function Impagina () {
        var 
    xstart:Number=10;
        var 
    ystart:Number=60;
        
    testo = new Array();
        for ( var 
    03i++ )
        {
            var 
    mc:MovieClip _root.attachMovie("clipmsg""clipmsgNews"+ithis.getNextHighestDepth());
            
    // attribuisco le coordinate di partenza dei mc
            
    mc._x xstart
            mc
    ._y ystart+i*105;
            
    // popolo i mc
            
    mc.news.TitoloNews.htmlText UltimoDiTitoloNews[i];
            
    mc.news.DataNews.htmlText UltimoDiDataNews[i];
            
    testo[i] = substring(UltimoDiContenutoNews[i].split("[b]").join("
    "
    ),0,90) + "..."
            
    mc.news.ContenutoNews.html true;
            
    mc.news.ContenutoNews.htmlText testo[i];
            
    //comportamento del pulsante della news
        
    mc.id i// FONDAMENTALE
            
    mc.news.leggi_tutto.onRelease = function()
            {
                var 
    my_color:Color = new Color(this);
                
    trace(this " " this.id);
                
    //creo un rettangolo nero
                
    var zn:MovieClip this.createEmptyMovieClip("zoom_news"+ithis.getNextHighestDepth());
                
    zn.lineStyle(0,0x000000);
                
    zn.beginFill(0x000000100);
                
    zn.moveTo(100,-50);
                
    zn.lineTo(100,205);
                
    zn.lineTo(590,205);
                
    zn.lineTo(590,-50);
                
    zn.lineTo(100,-50);
                
    zn.endFill();
                ....
            } 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    225
    Il codice è diventato questo:

    Codice PHP:
    function Impagina () { 
        var 
    xstart:Number=10
        var 
    ystart:Number=60
        
    testo = new Array(); 
        for ( var 
    03i++ ) 
        { 
            var 
    mc:MovieClip _root.attachMovie("clipmsg""clipmsgNews"+ithis.getNextHighestDepth()); 
            
    // attribuisco le coordinate di partenza dei mc 
            
    mc._x xstart 
            mc
    ._y ystart+i*105
            
    // popolo i mc 
            
    mc.news.TitoloNews.htmlText UltimoDiTitoloNews[i]; 
            
    mc.news.DataNews.htmlText UltimoDiDataNews[i]; 
            
    testo[i] = substring(UltimoDiContenutoNews[i].split("[b]").join("
    "
    ),0,90) + "..." 
            
    mc.news.ContenutoNews.html true
            
    mc.news.ContenutoNews.htmlText testo[i]; 
            
    //comportamento del pulsante della news 
        
    mc.id i// FONDAMENTALE 
            
    mc.news.leggi_tutto.onRelease = function() 
            { 
                var 
    my_color:Color = new Color(this); 
                
    trace(this " " this.id); 
                
    //creo un rettangolo nero 
                
    var zn:MovieClip this.createEmptyMovieClip("zoom_news"+ithis.getNextHighestDepth()); 
                
    zn.lineStyle(0,0x000000); 
                
    zn.beginFill(0x000000100); 
                
    zn.moveTo(100,-50); 
                
    zn.lineTo(100,205); 
                
    zn.lineTo(590,205); 
                
    zn.lineTo(590,-50); 
                
    zn.lineTo(100,-50); 
                
    zn.endFill(); 
                
    //creo una label su rettangolo 
                
    zn.createTextField("zoom_news_label"+ithis.getNextHighestDepth() , 100, -50490255); 
                
    trace(zn["zoom_news_label"+i]) 
                
    zn["zoom_news_label"+i].multiline true
                
    zn["zoom_news_label"+i].selectable false
                
    zn["zoom_news_label"+i].wordWrap true
                var 
    my_fmt:TextFormat = new TextFormat(); 
                
    my_fmt.color 0x000000
                
    my_fmt.bold true
                
    my_fmt.font "_sans"
                
    my_fmt.size 10
                
    my_fmt.align "left"
                
    zn["zoom_news_label"+i].html true
                
    zn["zoom_news_label"+i].htmlText UltimoDiContenutoNews[i].split("[b]").join("
    "
    ); 
                
    zn["zoom_news_label"+i].setTextFormat(my_fmt); 
                
    my_color.setRGB(0x00ffff); 
     
            }
        }    


    La stampa di this.id mi da undefined e il resto è sempre uguale...

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Si, scusa, colpa mia. Sostituisci:

    Codice PHP:
    mc.id i
    con

    Codice PHP:
    mc.news.leggi_tutto.id i

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    225
    Perfetto. Così funziona.
    Grazie

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.