Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-02-2004, 15:57   #1 (permalink)
querfeldein
 
Benutzerbild von benemie
 
Registriert seit: Jul 2002
Ort: im Süden
Beiträge: 205
linien mit lineTo springen

jetzt hab ich auch mal ne frage an die gemeinde

ich bau gerade an einem menue dessen punkte durch
linien miteinander verbundn sind. die einzelnen punkte
kann man verschieben, die linien (lineTo...) passen sich
dymaisch an.

die einzelnen menuepunkte gehören einer klasse: segment an.

ActionScript:
  1. //hier die funktion
  2. segment.prototype.onEnterFrame = function() {
  3.     //lineTo zeug
  4.     this.line.clear();
  5.     with (this.line) {
  6.         globalToLocal(p1={x:_root.zero._x, y:_root.zero._y});
  7.         globalToLocal(p2={x:_parent._x, y:_parent._y});
  8.         lineStyle(1, 0xFF00FF, 100);
  9.         moveTo(p1.x, p1.y);
  10.         lineTo(p2.x, p2.y);
  11.     }
  12.     updateAfterEvent();
  13. };



alles funktioniert zwar, jedoch springen die erzeugten linien beim verschieben etwas, anstatt genau auf dem punkt zu bleiben.

kann man da was verbessern?


lines problem
__________________
mfg b

angst vor palmen !!!

Geändert von benemie (21-02-2004 um 16:23 Uhr)
benemie ist offline   Mit Zitat antworten
Alt 21-02-2004, 16:01   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Hab erstmal deinen Threadtitel geändert. Mit "so" kann ja kein Mensch was anfangen - schon gar nicht Leute, die später mal nach sowas suchen, in der Suchergebnisliste.

Gruß
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 21-02-2004, 16:05   #3 (permalink)
querfeldein
 
Benutzerbild von benemie
 
Registriert seit: Jul 2002
Ort: im Süden
Beiträge: 205
sorry

liegt wohl daran, dass ich meine antworten immer
so beginne. ist bei neuen themen wohl etwas
"nichtsaussagend"
__________________
mfg b

angst vor palmen !!!
benemie ist offline   Mit Zitat antworten
Alt 21-02-2004, 16:35   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi benemie,

denke mal es liegt daran, dass die Linie im onEnterFrame gezeichnet wird. Da nützt dir auch updateAfterEvents nichts - das hat nämlich nur Auswirkung bei onMouseMove oder bei Funktionen, die durch setInterval aufgerufen werden.

Scheint so, dass du segment.prototype.onPress nutzt um startDrag aufzurufen, oder so ähnlich?

Falls es so ist, würde ich folgendes machen:
1) segment.prototype.onEnterFrame umbenennen, z.B. in segment.prototype._onMouseMove;
2) segment.prototype.onPress und segment.prototype.onRelease ändern:
ActionScript:
  1. segment.prototype._onMouseMove = function() {
  2.         //lineTo zeug
  3.         this.line.clear();
  4.         with (this.line) {
  5.                 globalToLocal(p1={x:_root.zero._x, y:_root.zero._y});
  6.                 globalToLocal(p2={x:_parent._x, y:_parent._y});
  7.                 lineStyle(1, 0xFF00FF, 100);
  8.                 moveTo(p1.x, p1.y);
  9.                 lineTo(p2.x, p2.y);
  10.         }
  11.         updateAfterEvent();
  12. };
  13. segment.prototype.onPress = function(){
  14. this.onMouseMove = this._onMouseMove;
  15. this.startDrag();
  16. };
  17. segment.prototype.onRelease = segment.prototype.onReleaseOutside = function(){
  18. this.onMouseMove = null;
  19. this.stopDrag();
  20. };
Dadurch, dass die Linie jetzt bei onMouseMove gezeichnet wird, sollte updateAfterEvent funktionieren und die Linie nicht mehr springen.
Außerdem laufen nicht unnötige onEnterFrame-EventHandler im Hintergrund.

Ist jetzt natürlich nur ins Blaue geraten, weil ich nicht weiß wie deine Klasse aufgebaut ist.
Falls es nicht hilft, schieb doch mal die fla hoch, dann werf ich ein oder zwei Augen drauf.

gruß,
roman

Geändert von romän (21-02-2004 um 16:36 Uhr)
romän ist offline   Mit Zitat antworten
Alt 21-02-2004, 16:41   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
hmm, ich blick das mit dem localToGlobal nicht, das geht auch einfacher.

Das Problem scheint ja zu sein, dass der LineMC in deinem Segment liegt, richtig?
Also würde ich entweder einfach den MC aus dem Segment rauskicken und einfach in _root oder so plazieren und durchnummerieren.

wenn es in dem segment sein soll, probier mal, einfach die Linie von (0,0) zu (_root.zeroX-this._parent._x,_root.zeroY-this._parent._y) zu zeichnen.

Geändert von Janoscharlipp (21-02-2004 um 16:43 Uhr)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 21-02-2004, 16:51   #6 (permalink)
querfeldein
 
Benutzerbild von benemie
 
Registriert seit: Jul 2002
Ort: im Süden
Beiträge: 205
lines drawing

danke euch für die antworten.

@roman
habe dein script eingesetzt, funktioniert jetzt schneller.
jedoch gibt es noch immer kleiner ruckler.

@ Janoscharlipp
hatte erst gedacht, dass die linien im zugehörigen mc liegen sollten. womöglich ist es nach deiner methode besser, werde es mal so probieren.

hier mal das script, falls einer interesse hat
ActionScript:
  1. //klasse segment -----------------------------------------------
  2. clipcounter = 99;
  3. lineCount = 20;
  4. function segment() {
  5.     this.bezugspunktX;
  6.     this.bezugspunktY;
  7.     this.name;
  8.     this.class = "the segmentClass yeahh";
  9.     this.x;
  10.     this.y;
  11. }
  12. //--------------------------------------------------------------
  13. //prototype methoden
  14. segment.prototype = new MovieClip();
  15. segment.prototype.traceName = function() {
  16.     trace(this.name);
  17. };
  18. segment.prototype._onMouseMove = function() {
  19.         //lineTo zeug
  20.         this.line.clear();
  21.         with (this.line) {
  22.                 globalToLocal(p1={x:_root.zero._x, y:_root.zero._y});
  23.                 globalToLocal(p2={x:_parent._x, y:_parent._y});
  24.                 lineStyle(1, 0xFF00FF, 100);
  25.                 moveTo(p1.x, p1.y);
  26.                 lineTo(p2.x, p2.y);
  27.                 updateAfterEvent();
  28.         }
  29.        
  30. };
  31. segment.prototype.onPress = function(){
  32.         this.onMouseMove = this._onMouseMove;
  33.         this.startDrag();
  34. };
  35. segment.prototype.onRelease = segment.prototype.onReleaseOutside = function(){
  36.         this.onMouseMove = null;
  37.         this.stopDrag();
  38. };
  39.  
  40. // klasse und symbol verknüpfen --------------------------------
  41. Object.registerClass("quad", segment);
  42. //neue instanz erstellen
  43. function newSegment(clipname, X, Y, bezugspunkt) {
  44.     clipcounter;
  45.     linecount;
  46.     clipname = attachMovie("quad", clipname, clipcounter);
  47.     clipname.createEmptyMovieClip("line", lineCount);
  48.     clipname.name = clipname;
  49.     clipname._x = X;
  50.     clipname._y = Y;
  51.     clipname.bP = bezugspunkt;
  52.     clipcounter--;
  53.     linecount++;
  54. }
  55. nullPx = _root.zero._x;
  56. nullPy = _root.zero._y;
  57. //erzeugen der elemente mit newSegment()
  58. newSegment("head1", nullPx+(random(20)-10), nullPy+(random(20)-10), _root.zero);
  59. newSegment("head2", nullPx+(random(20)-10), nullPy+(random(20)-10), _root.zero);
  60. newSegment("head1sub1", nullPx+(random(20)-10), nullPy+(random(20)-10), _root.head1);
  61. newSegment("head1sub2", nullPx+(random(20)-10), nullPy+(random(20)-10), _root.head1);
  62. newSegment("head2sub1", nullPx+(random(20)-10), nullPy+(random(20)-10), _root.head2);
  63. //checking methodes and variables
  64. for (name in head2) {
  65.     trace("head1."+name+" = "+head1[name]);
  66. }

danke nochmal
__________________
mfg b

angst vor palmen !!!
benemie ist offline   Mit Zitat antworten
Alt 22-02-2004, 13:21   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
natürlich - die Linien liegen im segmentMC *sichvordiestirnklatsch*. Hab ich überhaupt nicht realisiert

kommst du jetzt zurande?
Ansonsten häng ich noch ne fla an, die als Ausgangspunkt dienen könnte.

klickst du hier

gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 22-02-2004, 15:08   #8 (permalink)
querfeldein
 
Benutzerbild von benemie
 
Registriert seit: Jul 2002
Ort: im Süden
Beiträge: 205
danke für die fla

interesanter ansatz
__________________
mfg b

angst vor palmen !!!
benemie 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:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele