Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-12-2006, 10:03   #1 (permalink)
Art Director
 
Benutzerbild von tomtom69
 
Registriert seit: Sep 2002
Ort: Mülheim/Ruhr
Beiträge: 698
Question 1. MCs gegenseitig wegdrücken bzw. 2. MCs 'kacheln'

Frohe Weihnachten @ all

Ich möchte mit nachstehendem Code folgende Dinge (irgendwann mal) erreichen:

1. soll eine horizontale Leiste entstehen, dessen Elemente sich beim Vergrößern gegenseitig "wegdrücken"

2. Möchte ich eine Anzahl x Elemente in X spalten und x Reihen anordnen.

Leider scheiterts wohl schon in den Anfängen - vielleicht kann mir da einer weiterhelfen

Mir kommt das Alles auch ziemlich umständlich vor - ich sitze immer nur sporadisch for Flash ...

Hier erstmal der Code für beide Sachen:
ActionScript:
  1. //Schleifenvariable 1. onEnterFrame
  2. var i:Number = 0;
  3. //Schleifenvariable 2. onEnterFrame
  4. var j:Number = 0;
  5. //Container für oEF -- keine 2 oEF sim. auf 'this'
  6. var testA:MovieClip = this.createEmptyMovieClip("testA_mc", 1);
  7. var testB:MovieClip = this.createEmptyMovieClip("testB_mc", 2);
  8. testA.onEnterFrame = function() {
  9.     //10 testquadrate erstellen für Navigationsprinzip mit 'wegdrücken'
  10.     if (i<=10) {
  11.         var quad:MovieClip = testA.attachMovie("quad_mc", "quad"+i+"_mc", i);
  12.         quad._y = 50;
  13.         quad._x = quad._width+50*i;
  14.         trace(quad);
  15.         trace(i);
  16.     }
  17.     quad.onRollOver = function() {
  18.         trace("rollOver: "+quad);
  19.         //Quadrat vergrößern
  20.         quad._xscale = 200;
  21.         quad._yscale = 200;
  22.         trace("Aktuelle Tiefe: "+quad.getDepth());
  23.         //Tiefen ermitteln
  24.         nex = testA.getInstanceAtDepth(quad.getDepth()+1);
  25.         trace("nächst höheres Object: "+testA.getInstanceAtDepth(quad.getDepth()+1));
  26.         //großes Quadrat soll immer in den Vordergrund
  27.         quad.swapDepths(nex);
  28.         quad.getNextHighestDepth();
  29.         trace(quad.hitTest(quad));
  30.         //test, ob großes Quadrat die umliegenden berührt -- wie kann man das Berührte namentlich ermitteln?
  31.         var hitter:Boolean = quad.hitTest(quad);
  32.         //wenn Berührung, dann sollen eigentlich alle anderen Quadrate 'gruppiert' nach links bzw. rechts 'gedrückt' werden
  33.         if (hitter) {
  34.             quad.onEnterFrame = function() {
  35.                 quad._x += 2;
  36.             }
  37.         }      
  38.     };
  39.     quad.onRollOut = function() {
  40.         trace("rollOut: "+quad);
  41.         quad._xscale = 100;
  42.         quad._yscale = 100;
  43.         //quad._x = quad._width+50*i;
  44.     };
  45.     i++;
  46.     if (i>10) {
  47.         delete this.onEnterFrame;
  48.     }
  49. };
  50. k=1;
  51.  
  52. //quadrate x spaltig mal x reihig???
  53. testB.onEnterFrame = function() {
  54.     //erstmal 50 quadrate erstellen ...
  55.     if (j<=50) {
  56.         var quad2:MovieClip = this.attachMovie("quad_mc", "quad"+j, j*2);
  57.         quad2._x = 20;
  58.         quad2._y = 200;
  59.         j++;
  60.         trace("------------------------------------------------");
  61.         trace("quad2 als instanz: "+quad2);
  62.         //wenn di sich berühren, dann nach rechts verschieben ...
  63.         if (quad2.hitTest(quad2)) {
  64.             trace("blubb");
  65.             quad2._x += 50*j;
  66.             k++;
  67.             trace(quad2+" hat den x-Wert: "+quad2._x);
  68.             trace(quad2+" hat den y-Wert: "+quad2._y);
  69.             //wenn ein Quadrat über den Bühenrand herrausgeht ...
  70.             if (quad2._x>Stage.width) {
  71.                 trace(quad2+"ist ausserhalb der stage");
  72.                 //dann umbrechen und eigentlich bis zum rechten Rand horizontal weiter ...
  73.                 quad2._y += 50+2*k;
  74.                 trace(quad2+" hat den y-Wert: "+quad2._y);
  75.                 quad2._x = 20;
  76.                 trace(quad2+" hat den x-Wert: "+quad2._x);
  77.             }
  78.         }
  79.     }
  80. };

... das vorgeplänkel gibt's hier: Link

Danke euch Allen schon mal,

greetz,

das Tom
Angehängte Dateien
Dateityp: zip test_onEnterFrame.fla.zip (6,1 KB, 16x aufgerufen)
__________________
__________________________________________
"… blubb!"
tomtom69 ist offline   Mit Zitat antworten
Alt 27-12-2006, 11:43   #2 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
hmm ...
also zumindest kann ich dir zwei stichwörter geben, die dir bei deiner suche helfen können:

tsunami-effekt <- wird der effekt genannt, bei dem in einer horizontalen auflistung die vergrößerten icons die kleineren zur seite schieben

modulo division <- ist eine rechenmethode, mit der zu z.B. sagst, daß in einer zeile nur 5 elemente stehen sollen. wenn du 18 elemente hast, erhälst du vier reihen, wovon die letzte nur drei elemente besitzt

gruß, twister
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 27-12-2006, 12:59   #3 (permalink)
Art Director
 
Benutzerbild von tomtom69
 
Registriert seit: Sep 2002
Ort: Mülheim/Ruhr
Beiträge: 698
...

... yo, danke

Werd mich da mal heute abend durchbeissen - sieht vielversprechend aus.

thx,

das Tom
__________________
__________________________________________
"… blubb!"
tomtom69 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:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele