Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-01-2007, 15:21   #1 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Problem beim Erstellen einer Klasse

Also habe mir heute mal eine kleine Funktion geschrieben und wollte diese nun in eine Klasse zusammenfassen nur komm ich bei einer stelle nicht weiter.

Das ist die Funktion:
ActionScript:
  1. stop();
  2.  
  3. TextField.prototype.Typewriter = function(sText:String, nSpeed:Number):Void {   
  4.     function fWrite(tf:TextField):Void {
  5.         tf.text = sText.substr(0,pos);
  6.         pos++;
  7.         if((pos-1) > tf.length) {
  8.             clearInterval(si);
  9.         };
  10.     };
  11.    
  12.     var pos:Number = 0
  13.     var si:Number = setInterval(fWrite,nSpeed,this);
  14. };
  15.  
  16. write_txt.Typewriter("Schreibmaschine schreibt ihren Text.",150);

so und versucht habe ich das:
ActionScript:
  1. class Typewriter
  2. {
  3.     private var m_pos:Number = 0;
  4.     private var m_sText:String;
  5.     private var m_tf:TextField;
  6.     private var m_si:Number;
  7.    
  8.     private function Write():Void {
  9.         trace(m_tf);
  10.         trace(m_sText);
  11.         trace(m_pos);
  12.         trace(m_si);
  13.     };
  14.    
  15.     public function Typewriter(tf:TextField, sText:String, nSpeed:Number) {
  16.         m_tf = tf;
  17.         m_sText = sText;
  18.         m_si = setInterval(Write,nSpeed);
  19.     };
  20. };

Das Problem: Wenn ich die Funktion Write() mit einem Intervall aufrufe bekomme ich undefined bei jedem wert. wenn ich sie einfach aufrufe stimmen alle werte. aber da ich ja einen intervall brauche...
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 29-01-2007, 15:23   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
setInterval(this, "Write", nSpeed);


(Und ein bisschen sauberer könnte alles sein)
sebastian ist offline   Mit Zitat antworten
Alt 29-01-2007, 15:25   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Da Zauberwort ist: Delegate

PHP-Code:
import mx.utils.Delegate

      
class Typewriter
      
{
          private var 
m_pos:Number 0;
          private var 
m_sText:String;
          private var 
m_tf:TextField;
          private var 
m_si:Number;

          private function 
Write():Void {
              
trace(m_tf);
              
trace(m_sText);
              
trace(m_pos);
              
trace(m_si);
          };
         
          public function 
Typewriter(tf:TextFieldsText:StringnSpeed:Number) {
              
m_tf tf;
              
m_sText sText;
              
m_si setInterval Delegate.create (thisWrite), nSpeed );
          };
      }; 
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 29-01-2007, 15:26   #4 (permalink)
class public{}
 
Benutzerbild von public
 
Registriert seit: Feb 2004
Ort: dessau
Beiträge: 1.406
ungestestet sollte aber gehn
PHP-Code:
import mx.utils.Delegate;
class 
Typewriter {
    private var 
m_pos:Number 0;
    private var 
m_sText:String;
    private var 
m_tf:TextField;
    private var 
m_si:Number;
    private function 
Write ():Void {
        
trace (m_tf);
        
trace (m_sText);
        
trace (m_pos);
        
trace (m_si);
    }
    public function 
Typewriter (tf:TextFieldsText:StringnSpeed:Number) {
        
m_tf tf;
        
m_sText sText;
        
m_si setInterval (Delegate.create (thisWrite), nSpeed);
    }


edit....da war einer schneller
public ist offline   Mit Zitat antworten
Alt 29-01-2007, 15:27   #5 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
ok vielen dank für die antworten werd mir Delegate dann mal genauer anschauen

so hier mla die fertige Klasse kp vllt brauchs ja jemand.
ActionScript:
  1. import Typewriter;
  2.  
  3. new Typewriter(meinTF,"Hallooooooooooooooooo",50);
  4. // new Typewriter(TextField,String,Intervall);
  5.  
Angehängte Dateien
Dateityp: rar Typewriter.rar (374 Bytes, 12x aufgerufen)
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi

Geändert von _crypto_ (29-01-2007 um 15:50 Uhr)
_crypto_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele