Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    errore su flash mx - php - mysql

    Ciao a tutti.

    E' una vita che no uso più flash e devo rimettermi a studiarlo da capo.

    ho un problema sto provando ad eseguire un tutorial pubblicato su di un forum (l'ho inserito in fondo al messaggio) per fare delle news con flash-php-mysql.

    dopo aver creato tutta la parte in php con tanto di db su mysql ho creato la parte del filmato in flash, ma quando faccio il test del movie ottengo questo errore.

    WARNING: This movie uses features that are not supported in the Flash 5 player
    Scene=hp, Layer=Layer 70, Frame=1: Flash MX Text Field Instance Name

    Ho eseguito il tutorial alla lettera, io uso flash mx, non vorrei che il tutorial fosse per mx 2004 (c'era scritto per mx!?!!)

    C'è qualcuno che può dirmi dove posso aver sbagliato.
    Di seguito metto per esteso il tutorial utilizzato:

    flash news [Php -mysql][FMX]
    Dopo 2 giorni di lavoro ecco un tutorial su come realizzare un sitema di news utilizzando php MySql e flashMx grazie anche alla collaborazione di Bear
    Iniziamo subito a realizzare la parte piu complicata, cioè, tutto cio che riguarda il lato server.
    Andremo a creare subito 4 files.php
    install.php
    add_news.php
    show_news.php
    user_property.php
    Il file user_property.php contiene solamente i parametri della connessione al database e la password per inserire nuovi articoli ed'e cosi sviluppato


    code:
    --------------------------------------------------------------------------------

    <?
    $db_host="localhost";
    $db_name="nomeDB";
    $db_user="nome_Utente";
    $db_password="password";
    $user_password="password_a_scelta";
    ?>

    --------------------------------------------------------------------------------



    Il nome del database, il nome utente e la db_password e fornita di solito dall'host
    Mi sembra che sin'ora non ci sia bisogno di spiegazioni
    -------------------------------------------------------------------------
    il file install.php serve a creare una nuova tabella nel db che risiede sul server
    procediamo con il codice

    code:
    --------------------------------------------------------------------------------

    <?
    //includiamo il file con i parametri di connessione
    include("user_property.php");
    //inizio connessione al db se non e possibile mi stampa un messaggio di errore
    $conn=mysql_connect($db_host,$db_user,$db_password ) or die("Errore nella connessione al database") ;
    //selezioniamo il db e anche qui viene stampato a video un messaggio di errore in caso di fallimento dell'operazione
    mysql_select_db($db_name,$conn) or die ("impossibile selezionare il database");
    //questo e quello che chiediamo di fare al nostro db tramite il comando sql CREATE TABLE
    //anche qui verrà stampato un messaggio di errore in caso di fallimento
    $query="CREATE TABLE novita (id INT(5) UNSIGNED not null AUTO_INCREMENT, data_news VARCHAR(15) not null,titolo VARCHAR(60) not null, news TEXT not null,PRIMARY KEY(id))";
    if(mysql_query($query,$conn)){
    echo "Installazione completata.... rimuovere questo file dal server per incominciare a postare le vostre news";
    }else{
    echo "Impossibile installare la tabella";
    }
    //ciudiamo la connessione
    mysql_close($conn);
    ?>

    --------------------------------------------------------------------------------



    Se e andato a buon fine verra stampato a video questo messaggio:
    "Installazione completata.... rimuovere questo file dal server per incominciare a postare le vostre news" e bisognerà rimuovere il file install.php dal server altrimenti non potrete postare le vostre news
    --------------------------------------------------------------------------------
    Passiamo ora al file che permetterà di inserire le vostre news cioe: add_news.php
    subito il codice

    code:
    --------------------------------------------------------------------------------

    <?
    //includiamo sempre i parametri di connessione
    include("user_property.php");
    //quindi: se il file install.php esiste verra stampato sul campo dinamico "output" all'interno dell'swf un messaggio di errore
    if(file_exists("install.php")){
    echo "output=Il file d'installazione non e stato ancora rimosso dal server";
    }else{
    //altrimenti si procede....
    //verifica della password inserita
    if($password!=$user_password){
    echo "output=Passoword errata";
    }else{
    //se e andato a buon fine ...
    $news_t=stripslashes($news_t);
    $news_txt=stripslashes ($news_txt);
    //Creo la data...
    $data=date("d/m/Y");
    //apriamo la connessione al db
    $conn=mysql_connect($db_host,$db_user,$db_password ) or die ("Impossibile connettersi al database");
    //selezioniamo il db
    mysql_select_db($db_name,$conn) or die ("Impossibile selezionare il database");
    //query da inviare al db...
    $query="INSERT INTO novita (data_news,titolo,news) VALUES ('$data','$news_t','$news_txt')";
    //$news_t e $news_txt sono le variabili inviate dal Flash-form
    if(mysql_query($query,$conn)){
    echo "output=News inserita correttamente";
    }else{
    echo "output=Non e stato possibile inserire questa news";
    }
    //chiusura della connessione
    mysql_close($conn);
    }
    }
    ?>

    --------------------------------------------------------------------------------



    ------------------------------------------------------------------------------------
    Passiamo ora all'ultimo dei 4 file php
    non ripeterò nuovamente quanto già detto...
    show_news.php

    code:
    --------------------------------------------------------------------------------

    <?
    include("user_property.php");
    if(file_exists("install.php")){
    echo "output=Il file d'installazione non e stato ancora rimosso dal server...";
    }else{
    $conn=mysql_connect($db_host,$db_user,$db_password ) or die ("Impossibile connetersi al database");
    mysql_select_db($db_name,$conn) or die ("impossibile selezionare il database");
    //la query chede al db di selezionare tutti ("*") i campi e di ordinarli in ordine "id" decrescente
    $query="SELECT * FROM novita ORDER BY id DESC";
    $r=mysql_query($query,$conn);
    //eseguo un ciclo while e concateniamo delle stringhe che verranno
    //stampate e "splittate"(myvar.split()) su flash
    while($i=mysql_fetch_array($r)){
    $data_str.=$i[data_news]."|";
    $tit_str.=$i[titolo]."|";
    $news_str.=$i[news]."|";
    }
    //Finalmente stampiamo le variabili
    echo "&varData=$data_str";
    echo "&varTitolo=$tit_str";
    echo "&varNews=$news_str";
    mysql_close($conn);
    }
    ?>

    --------------------------------------------------------------------------------



    -------------------------------------------------------------------------------------
    Finalmente un po di flash!
    Prepariamo il filmato...
    si va subito a creare un movieclip con istanza "mc", che contiene al suo interno un campo di testo "dinamico" che istanzieremo con il nome "data_title" ove apparirà il titolo della news
    Ora: in _root su un frame mettiamo un campo di testo dinamico e lo istanziamo con nome "testoNews" inseriamo lo script

    code:
    --------------------------------------------------------------------------------

    onLoad = function() {
    //PATH DEL FILE PHP
    path = "show_news.php";
    loadVariablesNum(path, 0);
    //CREO DEGLI ARRAY CONTENITORI CHE VERRANNOP RIEMPITI NON APPENA SARANNO PERVENUTI I DATI
    dataArray = new Array();
    titleArray = new Array();
    newsArray = new Array();
    };
    onData = function() {
    testoNews.html = 1;
    dataArray = varData.split("|");
    titleArray = varTitolo.split("|");
    newsArray = varNews.split("|");
    if (dataTitolo.length-1<15) {
    for (var i = 0; i<dataArray.length-1; i++) {
    //duplichiamo i movieclip...
    duplicateMovieClip("mc", "mc"+i, i);
    //li posizioniamo in verticale...
    this["mc"+i]._x = 50;
    this["mc"+i]._y = 50+i*20;
    this["mc"+i].data_title.text = titleArray[i];
    //gli assegnamo le funzioni prototype
    this["mc"+i].rollovers();
    this["mc"+i].rollouts();
    this["mc"+i].releases(dataArray[i], newsArray[i]);
    }
    } else {
    //quindi se l'array dataTitolo e maggiore di 15 (io ho messo quindici voi potete mettere il numero che volete, dipende da quante news volete visualizzare) eseguo le stesse operazioni riportate sopra
    for (var i = 0; i<15; i++) {
    duplicateMovieClip("mc", "mc"+i, i);
    this["mc"+i]._x = 50;
    this["mc"+i]._y = 50+i*20;
    this["mc"+i].data_title.text = titleArray[i];
    this["mc"+i].rollovers();
    this["mc"+i].rollouts();
    this["mc"+i].releases(dataArray[i],newsArray[i]);
    }
    }
    };
    //Queste sono le proto che permetteranno di visualizzare le news e di creare un piccolo effetto al rollOver del mouse
    MovieClip.prototype.rollovers = function() {
    this.onRollOver = function() {
    c = new Color(this);
    c.setRGB(0xFFFFFF);
    };
    };
    MovieClip.prototype.rollouts = function() {
    this.onRollOut = function() {
    c = new Color(this);
    c.setRGB(0x000000);
    };
    };
    MovieClip.prototype.releases = function(dataTesto, newstesto) {
    this.onRelease = function() {
    _root.testoNews.htmlText = "<font color='#FF0000'>"+dataTesto+"</font>"+newline+newstesto;
    };
    };

    --------------------------------------------------------------------------------



    -------------------------------------------------------------------------------------
    Ora andiamo a creare il form per l'invio dei dati al php
    lo facciamo semplice semplice
    dobbiamo solo creare un nuovo filmato e inserire dei campi di testo di input al suo interno
    uno con nome variabile password (singola riga) dove verra inserita la password che vi siete scelti voi
    un'altro con nome variabile news_t (signola riga) dove verra scritto il titolo della news
    e l'ultimo un campo di testo (input multiriga) nome variabile news_txt dove scriverete la vostra news completa
    Ci serve ancora una textfield per verificare se i dati sono stati inseriti o meno,quindi la creo e le do un nome variabile output
    Ora create un pulsante e istanziatelo in "bottone"
    quindi dalla _root

    code:
    --------------------------------------------------------------------------------

    bottone.onRelease=function(){
    loadVariableNum("add_news.php","","POST")
    }

    --------------------------------------------------------------------------------



    Finito!
    Istruzioni:
    - Salvate tutto nella stessa directory quindi pubblicatela sul vostro server
    - Lanciate il vostro browser puntando al file install.php, se e andato tutto bene rimuovete il file d'installazione e cominciate a postare le vostre news!
    ---------------------------------------------------------------------------------------
    Ricordandovi di attenervi al regolamento di questo forum , tutte le funzioni di php le trovate nell'antico testamento del php
    Buon Lavoro
    -------------------


    Piccola modifica!!!!!
    ho preparato una piccola modifica nel file flash per chi volesse visualizzare tutte le news all'interno di un campo di testo
    stop();
    dataArray = new Array();
    titleArray = new Array();
    newsArray = new Array();
    sql = new LoadVars();
    sql.load("show_news.php");
    sql.onLoad = function() {
    if (sql.loaded) {
    testoNews.html = 1;
    dataArray = this.varData.split("|");
    titleArray = this.varTitolo.split("|");
    newsArray = this.varNews.split("|");
    for (var t = 0; t<titleArray.length-1; t++) {
    num = t+1;
    mystr = "<font color='#576C73'><u>"+titleArray[t]+"</u></font>"+newline+dataArray[t]+"
    "+newsArray[t]+newline+"----------------------------------------------------";
    testoNews.htmlText += mystr;
    }
    }
    };

  2. #2
    Originariamente inviato da parides
    (...)
    WARNING: This movie uses features that are not supported in the Flash 5 player
    Scene=hp, Layer=Layer 70, Frame=1: Flash MX Text Field Instance Name
    (...)
    Sembra un problema di compatibilità della versione di Flash. In pratica dice che Flash 5 non supporta l'utilizzo di un nome di istanza per i campi di testo dinamici.

    Prova a controllare in "File -> Impostazioni di pubblicazione", nella palette dell'swf, che non sia impostata l'esportazione per FlashPlayer5. Dovresti impostarla per FlashPlayer6. Se lo fai, ti si attiva la possibilità di selezionare l'ActioScript 2.0.

    Comunque non mi pare sia un errore che riguarda il PHP o MySQL, ma solo Flash.

  3. #3
    Sono d'accordo con te che è un problema di flash, ma l'impostazione è su FlashPlayer6, quindi non ho idea di cosa sbagli nel seguire i passi del tutorial.

    Grazie comunque per la risposta.

    Ciao.
    ParideS

  4. #4
    Se non riesci a risolverla in questo modo, puoi provare a non usare nomi di istanza per i campi di testo dinamico e, usare, invece, i nomi delle variabili come si faceva fino a poco tempo fà.
    ... sempre che il problema sia solo quello...

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.