Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-02-2008, 09:34   #1 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Hilfe bei Zeichenprogramm;lineTo Problem

Hi Leutz!
Mein Ziel ist es ein kleines Zeichenprogramm zu erstellen.
Ich habe auf der leinwand einen Movieclip(400x300) mit Instanznamen "drawDesk", auf dem gezeichnet werden soll.
Zum Zeichnen habe ich folgendes script gefunden und elicht angepasst.
Leider schaff ich es nicht das Skript so anzupassen, dass ich NUR auf meinem MC "drawDesk" zeichnen kann!
Irgendwie stell ich mich gar zu blöd an, aber ich schaffs nicht!
kann sich das vielleicht jemand mal kurz ansehen?
Danke!!!

PHP-Code:
_root.drawDesk.onMouseMove = function() {
    if (
hitTest_root._xmouse_root._ymousefalse)) {
        
trace("ich bin drüber");
        if (
draw) {
            
_root.lineStyle(10x000000100);
            
_root.lineTo(_root._xmouse_root._ymouse);
            }
        }
};
 
this.onMouseDown = function() {
draw true;
_root.moveTo(_root._xmouse_root._ymouse);
};
 
this.onMouseUp = function() {
draw false;
}; 
p.s. Ich benutze Flash MX

Geändert von agedoubleju (06-02-2008 um 10:14 Uhr)
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 10:21   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Du kannst nicht in leere MCs zeichnen, weil der MC keinen Inhalt hat. "Pump" den MC vorher auf, also bspw. indem du etwas hineinzeichnest:
PHP-Code:
this.createEmptyMovieClip("drawdesk",1);
drawdesk.lineStyle(10xFF0000100);
drawdesk.moveTo(0,0);
drawdesk.lineTo(0,200);
drawdesk.lineTo(200,200);
drawdesk.lineTo(200,0);
drawdesk.lineTo(0,0); 
  Mit Zitat antworten
Alt 06-02-2008, 10:34   #3 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Es funktioniert aber trotzdem nicht! Ich hab zwar ein erstelltes rechteck, aber es ist Flash egal, ich kann immernoch überall hinzeichnen.

Mein Plan: Die Grafik eines Papiers(z.B kariertes Blockblatt) wird der Hintergrund.Der "Leere" drawdesk-Movieclip soll darüber liegen.
Wenn ich nun in drawdesk etwas zeichne, sieht es so aus, als würde ich direkt auf dem Papier zeichnen.

Wie schaffe ich es das man nicht auf der ganzen Bühne zeichnen kann, sondern nur in einem von mir definierten brereich (= drawdesk)???
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 10:39   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Da hast du irgendetwas falsch gemacht, ich habe dein Beispiel als Script genommen, mein Script von oben davorgesetzt und konnte dann nur in dem vorgegebenen MC zeichnen. Beispiel ist angehängt...
Angehängte Dateien
Dateityp: zip zeichnen.zip (4,6 KB, 9x aufgerufen)
  Mit Zitat antworten
Alt 06-02-2008, 10:56   #5 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Danke dir, aber....
ich bräuchte das ganze im MX Format.
kann es daran leigen?
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 11:05   #6 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
"unerwartetes Dateiformat" kannst du mir es vielleicht auch für MX bereitstellen?
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 11:15   #7 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Hab nochmal ne neue Fla gemacht und dann ging es auch!
Zeichnet er bei dir auch leicht über die Begrenzung hinaus?

Wenn ich jetzt irgendein element aus meiner Bibliothek auf die Bühne hole,
dann funktioniert es wieder nicht mehr, d.h. er zeichnet wieder darüber hinaus...
obwohl ich am AS garnix verändert habe???

Geändert von florist (06-02-2008 um 11:22 Uhr)
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 12:12   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Im MX-Format kann ich nur noch die SWF veröffentlichen, nicht aber die FLA. Versuch mal folgendes Script in einer neuen FLA:
PHP-Code:
this.createEmptyMovieClip("drawdesk",1);
drawdesk.lineStyle(10xFF0000100);
drawdesk.moveTo(0,0);
drawdesk.lineTo(0,200);
drawdesk.lineTo(200,200);
drawdesk.lineTo(200,0);
drawdesk.lineTo(0,0);


_root.drawdesk.onMouseMove = function() {
    if (
hitTest_root._xmouse_root._ymousefalse)) {
        
trace("ich bin drüber");
        if (
draw) {
            
_root.lineStyle(10x000000100);
            
_root.lineTo(_root._xmouse_root._ymouse);
            }
        }
};
 
this.onMouseDown = function() {
   
draw true;
   
_root.moveTo(_root._xmouse_root._ymouse);
};
 
this.onMouseUp = function() {
   
draw false;
}; 
  Mit Zitat antworten
Alt 06-02-2008, 12:53   #9 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
ja das funktioniert bei mir auch!
Aber sobald ich einen MC von der Bibliothek auf die Bühne hole, macht er es nicht mehr und ich kann wieder überall zeichnen...komischer effekt!?!
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 13:21   #10 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Also ich hab hier einen ganz seltsamen effekt.
Ich hab die Fla mal gepostet.

Das interessante ist:
Hat man nur den MC "drawdesk" auf der bühne und folgenden code:
Code:
_root.drawdesk.onMouseMove = function() {
    if (hitTest( _root._xmouse, _root._ymouse, false)) {
        trace("ich bin drüber");
        if (draw) {
            _root.lineStyle(1, 0x000000, 100);
            _root.lineTo(_root._xmouse, _root._ymouse);
            }
        }
};
 
this.onMouseDown = function() {
   draw = true;
   _root.moveTo(_root._xmouse, _root._ymouse);
};
 
this.onMouseUp = function() {
   draw = false;
};
Dann funktioniert es. Holt man einen Button oder etwas anderes aus der Biblio, erweitert sich der zeichenbare Bereich bis dorthin wo man das aus der bibliothek gezogenen element positioniert hat.
is das normal?

Die fla ist im Anhang
Angehängte Dateien
Dateityp: zip test.zip (2,9 KB, 2x aufgerufen)
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 13:23   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Dann pass mal den _root.moveTo an...
  Mit Zitat antworten
Alt 06-02-2008, 13:49   #12 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
klappt nicht.
Ich habs mit:
Code:
_root.drawdesk.moveTo...
und mit
Code:
_root.drawdesk.onMouseDown = function() {
   draw = true;
   _root.moveTo(_root._xmouse, _root._ymouse);
};
oder
Code:
_root.drawdesk.onMouseDown = function() {
   draw = true;
   _root.drawdesk.moveTo(_root._xmouse, _root._ymouse);
};
versucht, nix funktioniert....ich checks net!
florist ist offline   Mit Zitat antworten
Alt 06-02-2008, 15:28   #13 (permalink)
langsam wirds
 
Registriert seit: Dec 2005
Ort: Nürnberg
Beiträge: 300
Jajaja......wenn man an der falschen stelle sucht.
Das Problem war in Wirklichkeit, dass ich bei der onMouseDown-Aktion nicht abgefragt habe ob sich die Maus auch über "dradesk" befindet.
Deshalb konnte man auch außerhalb von "drawdesk" das zeichnen beginnen.
Hab es mit Hittest gelöst!
Code:
var draw = false;

this.onMouseMove = function() {
    if (drawdesk.hitTest( _root._xmouse, _root._ymouse, false)) {
        trace("ich bin drüber");
        if (draw) {
            this.lineStyle(1, 0x000000, 100);
            this.lineTo(_root._xmouse, _root._ymouse);
            }
            
        }

};

this.onMouseDown = function() {
  if (drawdesk.hitTest( _root._xmouse, _root._ymouse, false)) {
     draw = true;
   _root.moveTo(_root._xmouse, _root._ymouse);
  }
};

this.onMouseUp = function() {
   draw = false;
};
Trotzdem danke an alle die mir Helfen wollten oder geholfen haben ;-)
florist 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 02:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele