Flashhilfe.de - Flash Community

Karusell in Flash MX2004 [Flash MX 2004]

 


AntwortenRegistrieren Seite1  

mbx2#1
Benutzerbild von mbx2
Beiträge: 6
Registriert: Nov 2007

16.07.2008, 14:46

Hallo Forum!

Ich habe hier dieses Script gefunden:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var numOfBalls:Number = 10;
var radiusX:Number = 250;
var radiusY:Number = 75;
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 2;
var speed:Number = 0.05;

for(var i=0;i<numOfBalls;i++)
{
  var t = this.attachMovie("item","b"+i,i+1);
  t.angle = i * ((Math.PI*2)/numOfBalls);
  t.onEnterFrame = mover;
}

function mover()
{
  this._x = Math.cos(this.angle) * radiusX + centerX;
  this._y = Math.sin(this.angle) * radiusY + centerY;
  var s = this._y /(centerY+radiusY);
  this._xscale = this._yscale = s*100;
  this.angle += this._parent.speed;
  this.swapDepths(Math.round(this._xscale) + 100);
}

this.onMouseMove = function()
{
  speed = (this._xmouse-centerX)/1500;
}


Funktioniert einwandfrei :-) -> nun meine Frage: Wie kann ich die jeweiligen Movieclips am besten dynamisch "befüllen"? Habe bereits etwas experimentiert, jedoch leider ohne Erfolg. Es soll dazu eine Xml-Datei geben, die den jeweiligen Bildpfad/name & evtl. Text vorgibt. Vielleicht hat jemand Rat? Ich wäre sehr dankbar!

Viele Grüße, mbx2
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.07.2008, 14:59

...das haste doch von der seite:
http://gotoandlearn.com/
und da gibts noch 2 weitere Tuts um Karusell, in denen auch dein Problem gelöst wird!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
mbx2#3
Benutzerbild von mbx2
Beiträge: 6
Registriert: Nov 2007

Themenautor/in

16.07.2008, 15:22

Hallo!

Nein, das Script habe ich hier im Forum gefunden. Die vorgeschlagene Website kenne ich schon, hilft mir leider jedoch nicht weiter, da ich die .fla-Dateien mit meiner Flash-Version noch nicht einmal öffnen kann (Selbst mit ner Flash8-Testversion klappts nicht). Das Tutorial bezieht sich zudem auf die neuste Flash-Version und einige Funktionen die im Video genutzt werden gibt es bei mir noch garnicht.

Kann man evtl. per loadmovie direkt in den jeweiligen Movieclip "item", der erzeugt wird,  etwas laden? Wenn ja, wie? Vielleicht hat jemand das Ganze bereits realisiert. Danke für die Hilfe!

Beste Grüße, mbx2
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.07.2008, 16:22

...ich hab das tut auf der Seite druchgemacht mit mx - mann muss zwar ein wenig das Programm kennen, aber ALLE sachen sind möglich!! hab aber nur noch ne Fl 8 datei...
Hier die komplette AS Datei mit tooltip und co...
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

var numOfItems:Number;
var radiusX:Number = 250;
var radiusY:Number = 75;
var centerX:Number = Stage.width/2;
var centerY:Number = Stage.height/2;
var speed:Number = 0.05;
var perspective:Number = 100;
var home:MovieClip = this;
theText._alpha = 0;

//tooltip einblenden
var tootlip:MovieClip = this.attachMovie("tooltip", "tooltip", 10000);
tooltip._alpha = 0;

//XML laden
var xml:XML = new XML();
xml.ignoreWhite = true;

xml.onLoad = function() {
   var nodes = this.firstChild.childNodes;
   numOfItems = nodes.length;
   //Elemente ins Rondell laden
   for (var i = 0; i<numOfItems; i++) {
      var t = home.attachMovie("item", "item"+i, i+1);
      t.angle = i*((Math.PI*2)/numOfItems);
      t.onEnterFrame = mover;
      //tooltip text
      t.toolText = nodes[i].attributes.tooltip;
      //COntent text
      t.content = nodes[i].attributes.content;
      //bild laden
      t.icon.inner.loadMovie(nodes[i].attributes.image);
      //spiegelung laden
      t.ref.inner.loadMovie(nodes[i].attributes.image);
      t.icon.onRollOver = over;
      t.icon.onRollOut = out;
      t.icon.onRelease = release;
   }
};

//Tooltip laden
function over() {
   home.tooltip.tipText.text = this._parent.toolText;
   home.tooltip._x = this._parent._x;
   home.tooltip._y = this._parent._y-this._parent._height/2;
   home.tooltip.onEnterFrame = Delegate.create(this, moveTip);
   home.tooltip._alpha = 100;
}
//Tooltip löschen
function out() {
   home.tooltip.tipText.text = "";
   delete home.tooltip.onEnterFrame;
   home.tooltip._alpha = 0;
}

//Items ausblenden
function release() {
   home.tooltip._alpha = 0;
   home.theText._alpha = 0;
   for (var i = 0; i<numOfItems; i++) {
      var t:MovieClip = home["item"+i];
      t.xPos = t._x;
      t.yPos = t._y;
      t.theScale = t._xscale;
      delete t.icon.onRollOver;
      delete t.icon.onRollOut;
      delete t.icon.onRelease;
      delete t.onEnterFrame;
      if (t != this._parent) {
         //icons ausblenden
         var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 0, 2, true);
         var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 0, 2, true);
         var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 100, 0, 2, true);
      } else {
         //Icon vergössern
         var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 100, 1.8, true);
         var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 100, 1.8, true);
         var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, 150, 1.8, true);
         var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, 200, 1.8, true);
         var tw5:Tween = new Tween(theText, "_alpha", Strong.easeOut, 0, 100, 2, true);
         theText.text = t.content;
         var s:Object = this;
         tw.onMotionStopped = function() {
            s.onRelease = unRelease;
         };
      }
   }
}

//Items einblenden
function unRelease() {
   delete this.onRelease;
   var tw:Tween = new Tween(theText, "_alpha", Strong.easeOut, 100, 0, 1, true);
   for (var i = 0; i<numOfItems; i++) {
      var t:MovieClip = home["item"+i];
      if (t != this._parent) {
         //icons einblenden
         var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, 0, t.theScale, 2, true);
         var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, 0, t.theScale, 2, true);
         var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 0, 100, 2, true);
      } else {
         //Icon zurücksetzen
         var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, t.theScale, 2, true);
         var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, t.theScale, 2, true);
         var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, t.xPos, 2, true);
         var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, t.yPos, 2, true);
         //Roundell wiederherstellen
         tw.onMotionStopped = function() {
            for (var i = 0; i<numOfItems; i++) {
               var t:MovieClip = home["item"+i];
               t.icon.onRollOver = Delegate.create(t.icon, over);
               t.icon.onRollOut = Delegate.create(t.icon, out);
               t.icon.onRelease = Delegate.create(t.icon, release);
               t.onEnterFrame = mover;
            }

         };
      }
   }
}

//Tooltip bewegen
function moveTip() {
   home.tooltip._x = this._parent._x;
   home.tooltip._y = this._parent._y-this._parent._height/2;
}

//xml file laden
xml.load("icons.xml");

//Rondell drehen
function mover() {
   this._x = Math.cos(this.angle)*radiusX+centerX;
   this._y = Math.sin(this.angle)*radiusY+centerY;
   var s:Number = (this._y-perspective)/(centerY+radiusY-perspective);
   this._xscale = this._yscale=s*100;
   this.angle += this._parent.speed;
   this.swapDepths(Math.round(this._xscale)+100);
}

this.onMouseMove = function() {
   speed = (this._xmouse-centerX)/2500;
};


Hier die XML datei "icons.xml"
ActionScript:
1
2
3
4
5
6
<icons>
<icon image="Bild1.PNG" tooltip="Das ist Bild 1" />
<icon image="Bild2.jpg" tooltip="Das ist Bild 2" />
<icon image="Bild3.jpg" tooltip="Das ist Bild 3" />
<icon image="Bild4.jpg" tooltip="Das ist Bild 4" />
</icons>


..und dann brauchst du nur noch die passenden MC in deiner Flashdatei - wenn du nicht weißt welche, schau dir dazu einfach das Video an!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#5
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

16.07.2008, 16:48

..hab noch flash mx aufn rechner... das einzige, was er nicht kennst ist "onMotionStopped" im As und zu ersetzen durch: "onMotionFinished"
thats all...
also schnell ne xml erstellen und ausprobieren!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

Angehängte Dateien:
Adobe Flash Quelldatei rondell mx 2004.fla80.00 KB
mbx2#6
Benutzerbild von mbx2
Beiträge: 6
Registriert: Nov 2007

Themenautor/in

16.07.2008, 17:04

Hi!

Ich bin im Freudentaumel! Vielen vielen Dank!! Es funktioniert! :-)

Freudige Grüße, mbx2

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de