Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2006, 11:30   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 8
Talking Langsam Zeichnen ?

Hallo!
In einer Animation sollen Strichen eingeblendet werden. Mit Maske hab ich es schon gemacht, aber ich suche jetzt nach einer schnittigen Lösung.

Code:
onClipEvent (load){
	lineStyle(2, 0x000000, 100);
	}
onClipEvent (enterFrame){
	moveTo(0, 0);
	lineTo(100, 0);
             lineTo(100,100);
	}
Das funktioniert so ja gut, aber wenn der Strich langsam gezeichnet werden soll, weiß ich nicht mehr weiter.
Hat jemand einen Tip?
Vielen Dank schon mal im voraus.
Ciao
Arbeite mit Flash 8!
wulfcam ist offline   Mit Zitat antworten
Alt 07-01-2006, 12:15   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Würde es so machen, sieht zwar etwas viel aus aber ist schnell überschaubar was was macht.

Da du ja Flash8 hast würde ich nicht das EnterFrame auf den mc selber legen sondern in die Hauptzeitleiste der Bühne.
Also deinen mc einfach ins erste Frame packen, dann ihm den Instanznahmen myMc geben und den Script ebenfalls ins erste Frame der Hauptzeitleiste packen.

PHP-Code:
myMc.lineStyle0x000000 100 );
// zuerst die Punkte setzen
nextPointsmyMc, [ [100 0] , [100 100] ]);
// dann erst den mc initialisieren, weil er dort schon
// auf die Punkte zurueck greift
initmyMc10);

myMc.onEnterFrame = function()
{
    
// die eigentliche "Zeichenfunktion" aufrufen
    
renderthis );
}

function 
initmcMovieClipspeedNumberstartXNumberstartYNumber ): Void
{
    
mc.startX;
    
mc.startY;
    
mc.moveTostartXstartY );
    
mc.speed speed;            // mit welcher Geschw. gezeichnet wird
    
setNextPointmc )            // ersten Zielpunkt setzen
}

// berechnet den neuen xWert fuer
// die Linie
function updateXmcMovieClip ): Void
{
    if( 
mc.gX > (mc.mc.speed) ) mc.+= mc.speed;
    else if (
mc.gX < (mc.mc.speed) ) mc.-= mc.speed;
    else 
mc.mc.gX;
}

// ebenso fuer y
function updateYmcMovieClip ): Void
{
    if( 
mc.gY > (mc.mc.speed) ) mc.+= mc.speed;
    else if (
mc.gY < (mc.mc.speed) ) mc.-= mc.speed;
    else 
mc.mc.gY;
}

// zeichnet die Linie anhand der berechneten 
// Koordinaten
function rendermcMovieClip ): Void
{
    
// pruefen ob der Zielpunkt schon erreicht
    
if( mc.!= mc.gX || mc.!= mc.gY )
    {
        
updateXmc );            // neuen xWert ermitteln
        
updateYmc );            // neuen yWert ermitteln
        
mc.lineTomc.xmc.y);    // ermittelten Wert zeichnen
    
}
    
// wenn ja, dann nach neuem Zielpunkt gucken
    
else setNextPointmc );
}

// setzt ein Array, was die naechsten Punkte (Ziele)
// enthaelt
function nextPointsmcMovieCliparr: Array ): Void
{
    
// Array kopieren
    
mc.arr = [].concatarr );
}

// prueft ob noch ein Ziel (Punkt) vorhanden ist
// und setzt diese Koordinaten als neue Zielpunkte
function setNextPointmcMovieClip ): Void
{
    
// gucken ob noch ein Punkt da ist
    
if( mc.arr.length )
    {
        
mc.gX mc.arr[0][0];        // neuer xZielwert
        
mc.gY mc.arr[0][1];        // neuer y Zielwert
        
mc.arr.splice0);        // Punkt aus dem Array entfernen
    
}
    
// das onEnterFrame beenden
    
else delete mc.onEnterFrame;

EDIT:
Kleinen Fehler in der Funktion init beseitigt...
__________________
ERROR: Signature is too large

Geändert von rendner[i] (07-01-2006 um 12:59 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 07-01-2006, 12:25   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2005
Beiträge: 8
danke schön

vielen dank für das script,
doch was du einfach nennst ist für mich schon sehr komplex...
ich guck es mir mal an, vielleicht komm ich damit klar.
Danke.
PS.: vielleicht gibt es ja doch noch eine einfache möglichkeit, den Strich langsam zu zeichnen!
wulfcam ist offline   Mit Zitat antworten
Alt 07-01-2006, 12:28   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
PS.: vielleicht gibt es ja doch noch eine einfache möglichkeit, den Strich langsam zu zeichnen!
Das ist schon sehr einfach, es sieht nur eben viel aus.
Habs jetzt auch etwas auskommentiert...
__________________
ERROR: Signature is too large
rendner[i] 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 19:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele