PDF über Flash downloaden

Dieses Thema im Forum "Flash and Actionscript" wurde erstellt von AL-OSX, 27.05.2004.

  1. AL-OSX

    AL-OSX Thread Starter MacUser Mitglied

    Beiträge:
    159
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Hallo zusammen!

    Hab ein problem: Ich sitz hier gerade an einer Flash-Seite und will dem späteren User anbieten, ein PDF auf seinen Rechner runterzuladen. Wie geht sowas?

    Danke, AL
     
  2. xlqr

    xlqr MacUser Mitglied

    Beiträge:
    1.943
    Zustimmungen:
    15
    MacUser seit:
    08.09.2003
    PHP:
    getURL("http://www.derlink.tld/daspdf.pdf""_blank");
    das schreibst du zu einem button, z.b.
     
  3. AL-OSX

    AL-OSX Thread Starter MacUser Mitglied

    Beiträge:
    159
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Das PDF soll von meinem Rechner geladen werden - ist vermutlich nicht viel anders?
    Weißt Du auch, wie ich eine eMail verschicken kann? "mailto:..." ?

    Vielen Dank!
     
  4. sevY

    sevY Gast

    Hi,

    wenn das PDF von deinem Rechner geladen werden soll brauchst du einen Redirector der deine dynamische IP immer aktualisiert.

    Gibt es zb bei dydns.org . Außerdem musst du dir dann auch den Apache konfigurieren und immer online sein.

    Unter uns… ein recht seltsames Vorhaben. Wofür hast du denn Webspace? ;) Hau die PDF doch dort hin.


    Emails versenden (lassen) kannst du entweder mit der getURL() Funktion und dem entsprechendem HTML Tag mailto:… als Parameter. Oder du baust dir ein richtiges Kontaktformular in Flash.

    Wie das aussehen könnte:

    Die PHP Datei:

    PHP:
    <?php
    $timestamp
    =date('l, dS of F Y / h:i:s A');
    $ip=getHostByAddr($_SERVER['REMOTE_ADDR']);
    $msg='
    Name: '
    .utf8_decode($_POST['var_name']).'
    Phone: '
    .utf8_decode($_POST['var_phone']).'
    eMail: '
    .utf8_decode($_POST['var_email']).'
    Subject: '
    .utf8_decode($_POST['var_subject']).'
    Message:
    '
    .utf8_decode($_POST['var_message']).'







    Browsertype: '
    .$_SERVER['HTTP_USER_AGENT'].'
    Provider: '
    .$ip.'
    Client IP Adress: '
    .$_SERVER['REMOTE_ADDR'].'
    Date/Time:  '
    .$timestamp.'
    '
    ;
    if(
    mail(utf8_decode($_POST['recipient']),utf8_decode($_POST['var_subject']),$msg,'FROM:'.utf8_decode($_POST['var_email'])))
        {
        echo
    '&status=sent';
        }
    ?>

    Und in Flash baust du dir dann ein paar InputFields und bennenst diese und sendest die Daten dann mittels loadVars() Objekt an PHP.

    PHP:

    //Actionscript

    //Funktion die die Emailadresse auf Validität prüft, Beschränkung des Telefonnummernfelds, Anzeige der Korrektheit/Vollständigkeit der Eingaben mittels „Typo Highlighting“

    var field=new Array(this.field_name,this.field_email,this.field_phone,this.field_subject,this.field_message);
    var 
    designation=new Array(this.name,this.email,this.phone,this.subject,this.message);
    var 
    onFocusAlpha=90;
    var 
    killFocusAlpha=45;
    emailAdressError=function (mail
        {
        var 
    badtype=[' '];
        if (
    mail.indexOf('@')>&& mail.lastIndexOf('.')>&& mail.lastIndexOf('.')-!== mail.indexOf('@') && mail.length<mail.lastIndexOf('.')+&& mail.length>mail.lastIndexOf('.')+2
            {
            for (var 
    i=0i<badtype.lengthi++) 
                {
                if (
    mail.indexOf(badtype[i])>0
                    {
                    return 
    true;
                    }
                }
            } 
        else 
            {
            return 
    true;
            }
        };
    for(var 
    i=0;i<=4;i++)
        {
        switch(
    i)
            {
            case 
    0:
                
    designation[i]._alpha=killFocusAlpha;
                var 
    textfield=field[i];
                
    textfield.tabIndex=i+1;
                
    textfield.text='';
                
    textfield._designation=designation[i];
                
    textfield.onSetFocus=function()
                    {
                    
    this._designation._alpha=onFocusAlpha;
                    };
                
    textfield.onKillFocus=function()
                    {
                    if(
    this.text=='')
                        {
                        
    this._designation._alpha=killFocusAlpha;
                        }
                    };
                
    selection.setFocus(textfield);            
            break;
            case 
    1:
                
    designation[i]._alpha=killFocusAlpha;
                var 
    textfield=field[i];
                
    textfield.tabIndex=i+1;
                
    textfield.text='';
                
    textfield.restrict='a-zA-ZäöüÄÖÜ0-9@._\\-';
                
    textfield._designation=designation[i];
                
    textfield.onSetFocus=function()
                    {
                    
    this._designation._alpha=onFocusAlpha;
                    };
                
    textfield.onKillFocus=function()
                    {
                    if(
    emailAdressError(this.text))
                        {
                        
    this._designation._alpha=killFocusAlpha;
                        }
                    };
            break;    
            case 
    2:
                
    designation[i]._alpha=killFocusAlpha;
                var 
    textfield=field[i];
                
    textfield.tabIndex=i+1;
                
    textfield.text='';
                
    textfield.restrict='0-9+\\-/() ';
                
    textfield._designation=designation[i];
                
    textfield.onSetFocus=function()
                    {
                    
    this._designation._alpha=onFocusAlpha;
                    };
                
    textfield.onKillFocus=function()
                    {
                    if(
    this.text=='')
                        {
                        
    this._designation._alpha=killFocusAlpha;
                        }
                    };
            break;    
            case 
    3:
                
    designation[i]._alpha=killFocusAlpha;
                var 
    textfield=field[i];
                
    textfield.tabIndex=i+1;
                
    textfield.text='';
                
    textfield._designation=designation[i];
                
    textfield.onSetFocus=function()
                    {
                    
    this._designation._alpha=onFocusAlpha;
                    };
                
    textfield.onKillFocus=function()
                    {
                    if(
    this.text=='')
                        {
                        
    this._designation._alpha=killFocusAlpha;
                        }
                    };
            break;
            case 
    4:
                
    designation[i]._alpha=killFocusAlpha;
                var 
    textfield=field[i];
                
    textfield.tabIndex=i+1;
                
    textfield.text='';
                
    textfield._designation=designation[i];
                
    textfield.onSetFocus=function()
                    {
                    
    this._designation._alpha=onFocusAlpha;
                    };
                
    textfield.onKillFocus=function()
                    {
                    if(
    this.text=='')
                        {
                        
    this._designation._alpha=killFocusAlpha;
                        }
                    };
            break;
            }
        }
    this.stop();



    //Und das hier auf den Button zum abschicken

    on(release)
        {
        if ((
    var_name !=='' && var_message !=='') && !emailAdressError(var_email)) 
            {    
            
    attachMovie("MacOs""MacOs_instance",1)
            
    MacOs_instance.startDrag(true);
            
    Mouse.hide();
            var 
    sender=new LoadVars()
            
    sender.object=this;
            
    sender.recipient=_global.recipient;
            
    sender.var_name=var_name;
            
    sender.var_email=var_email;
            
    sender.var_phone=var_phone;
            
    sender.var_subject=var_subject;
            
    sender.var_message=var_message;            
            
    sender.sendAndLoad('mail.php'sender'POST');        
            
    sender.onLoad=function(success)
                {
                if(
    success)
                    {
                    if(
    this.status=='sent')
                        {
                        
    _root.elements.content.mail.mailform_display.gotoAndPlay('valid');
                        
    MacOs_instance.stopDrag();
                        
    MacOs_instance.removeMovieClip();
                        
    Mouse.show();
                        
    delete this.object['sender'];
                        }
                    }
                };
            }
        else
            {            
            
    this.mailform_display.gotoAndPlay('invalid');
            }
        }


    Ich hab mir das für den aktuellen Auftrag gecodet und kann dir daher die FLA nicht zusenden wegen vertraulicher Kundendaten. Aber das Script ist recht flexibel gehalten, du kannst es gerne für deine Zwecke anpassen und verwenden.

    Liebe Grüße

    Yves
     
  5. xlqr

    xlqr MacUser Mitglied

    Beiträge:
    1.943
    Zustimmungen:
    15
    MacUser seit:
    08.09.2003
    hallo herr nachbar ;)

    richtig: button erstellen (schaltfläche) und im scriptfenster
    zuweisen.

    @ yves:
    merci mal wieder, von dir hab ich schon richtig viel gelernt! werde dein script auch verwenden...
     
  6. sevY

    sevY Gast

    &nbsp;


    Das freut mich zu hören :)

    Liebe Grüße aus Dortmund

    Yves
     
  7. AL-OSX

    AL-OSX Thread Starter MacUser Mitglied

    Beiträge:
    159
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Vielen Dank!

    Mail ist klar.

    Bei dem PDF hab ich mich glaub falsch ausgedrückt - sorry!

    Also: Das PDF ist ein Bestellschein, das sich der Kunde runterladen, ausdrucken und durch Fax lassen kann. Das PDF kommt natürlich mit auf den Webspace, liegt im gleichen Ordner wie der Rest. Ich brauch also einen "Download-Button".

    @ xlqr: Bist Du echt aus Gom:reng bei Reidlenga? Ich wohn seit vier Wochen auch in Gom:reng/Hinterweiler.
     
Die Seite wird geladen...