Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-04-2005, 09:09   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
Problem mit Actionscript Mouseover

Hi,

lese schon seit einiger Zeit hier mit. Nun habe ich mich selber mal an Flash gewagt. Und schon tauchen auch Probleme auf.

Ich habe eine Europakarte und möchte das jeweils das Land gross wird, über dem die Mouse steht. Den Movieclip hab ich schon erstellt, den Button auch (für Spanien). Dann hab ich noch ein Actionscript eingebaut (Button):

on (rollOver) {
root.spain_movie.play();
}

Allerdings klappt das nicht!??

Hat jemand eine Ahnung an was es liegen könnte??

Tschüss
Angehängte Dateien
Dateityp: zip europe.zip (25,1 KB, 11x aufgerufen)
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 09:29   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
wo liegt denn der mc spain_movie?! seh den gar nicht auf der bühne platziert?! wenn das geschehen ist mußte diesem noch den instanznamen spain_movie geben.... und besser _root, als root schreiben

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 25-04-2005, 09:30   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hab jetzt hier kein Flash aber, hier mal ein paar Gedankenanstöße dazu.
Ist spain_movie die Instance? Das wird meist mit dem Symbol-Namen verwechselt.

Im Spain-MC müsste dann ein Tween liegen.
Und das Skript auf dem BTN wäre dann:
ActionScript:
  1. on (rollOver) {
  2. _root.spain_movie.play();
  3. }

In meiner Signatur ist auch ein ähnliches Beispiel.

Edit: Da war einer schneller
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 25-04-2005, 09:45   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
Danke erstmal,

also spain_movie ist der Symbolname des MC. Wo kann ich den Instanzname vergeben?? Beim Button habe ich es gefunden.

Muss der MC auf die Bühne?? Ich habe mir das so vorgestellt:

Ich hab einen MC (Land wird größer) erstellt. Dann mache ich auf der Europakarte aus dem Land einen Button und schreibe das Actionscript.

Geht das so nicht??
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 10:05   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
hi.
Da hast Flash MX. Da brauchst du doch nicht extra einen Button machen.

Mach mal folgendes:

Klicke auf das Land, welches größer werden soll.(zb. England)
F8 drücken => und einen namen vergeben. zb england_mc => Verhalten "Movieclip"
Auf "ok" klicken.
Nun unten in den "Eigenschaften" einen Instanznamen vergeben. zb: england_mc

Das machst du mit allen Ländern.

Dann dieses Script in die Hauptzeitleiste in eine eigene Ebene:


PHP-Code:
var land_ar = ["spain_mc""france_mc""england_mc"];
for (var 
0land_ar.lengthi++)
{
    
this[land_ar[i]].onRollOver = function ()
    {
        
this.scale_out ();
    };
    
this[land_ar[i]].onRollOut = function ()
    {
        
this.scale_in ();
    };
}
MovieClip.prototype.scale_out = function ()
{
    
this.onEnterFrame = function ()
    {
        
this._xscale 200 this._xscale this._yscale += delete this.onEnterFrame;
    };
};
MovieClip.prototype.scale_in = function ()
{
    
this.onEnterFrame = function ()
    {
        
this._xscale 100 this._xscale this._yscale -= delete this.onEnterFrame;
    };
}; 
Da , wo im Script var land_ar steht, schreibst du immer den Instansnamen
deiner erstellten MC rein. In diesem Fall also "england_mc"
Angehängte Dateien
Dateityp: rar europe.rar (14,1 KB, 16x aufgerufen)
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page

Geändert von harego (25-04-2005 um 10:09 Uhr)
harego ist offline   Mit Zitat antworten
Alt 25-04-2005, 11:23   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
wow, super danke.

aber jetzt habe ich noch ein frage. ich möchte noch neben der karte eine kleine box haben, bei der dann ein paar infos über das land erscheinen, wenn die mouse über dem land ist (also zusätzlich zu dem größer werden des landes)

ist das möglich??
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 11:45   #7 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Ich mach mal mit harego Beispiel weiter.

Zuerst erstellt du dir ein dyn. Textfeld in der Hauptzeitleiste (HZL) mit nem Instance-Namen z. B. info_txt.
Jetzt noch eine Array in dem du die Info reinelegst und dann nur noch zuweisen.
ActionScript:
  1. var land_ar = ["spain_mc", "france_mc", "england_mc"];
  2. var lage_ar = ["Süden", "Westen", "Nord-Westen"];
  3. for (var i = 0; i < land_ar.length; i++)
  4. {
  5.         // : speichere i zwischen
  6.     this[land_ar[i]].ID=i   
  7.     this[land_ar[i]].onRollOver = function ()
  8.     {
  9.         // : lade Textinhalt
  10.         _root.info_txt.text="Liegt im: "+lage_ar[this.ID]+" von Europa."
  11.         this.scale_out ();
  12.     };
  13.     this[land_ar[i]].onRollOut = function ()
  14.     {
  15.         // : loesche Textinhalt
  16.         _root.info_txt.text=""
  17.         this.scale_in ();
  18.     };
  19. }
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 25-04-2005, 12:58   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
vielen dank psyk, das ist echt super klasse.

kannst du mir noch sagen, was du mit einem array meinst bzw wie man das erstellt??
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 14:26   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
ah ok, habs verstanden.

aber mal noch eine andere frage: wie kann ich einen umbruch in den text in dem dynamischn feld bringen???
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 14:41   #10 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Array ist ein Wertebehälter den du wie eine Liste Füllen kannst, in deinem Fall land_ar und lage_ar.
Zitat:
Zitat von jackhugo
wie kann ich einen umbruch in den text in dem dynamischn feld bringen???
Einen Umbruch erreichst du mit \n.
ActionScript:
  1. var lage_ar = ["Süden", "Westen", "Nord-Westen"]
  2. var klima_ar = ["heiß", "mild", "kalt"]
  3. // : ...
  4.         this[land_ar[i]].onRollOver = function (){
  5.                 // : lade Textinhalt
  6.  
  7.                 _root.info_txt.text="Liegt im: "+lage_ar[this.ID]+" von Europa. \n Hier ist es recht "+ klima_ar[this.ID]+"."
  8.                 this.scale_out ();
  9.         };
  10. // : ...
  11.  

Edit: Aus irgendeinem Grund wird der umgekehrter Schrägstrich im AS-Tag nicht angezeigt.

Funktioniert aber.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (25-04-2005 um 14:47 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 25-04-2005, 14:53   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
hehe, kein problem. habs verstanden und es klappt auch.

aber kannst du mir noch sagen wie ich da ein link einbaue, wenn man dann auf das land klickt.

sprich ich möchte, das wenn z.b i die werte 1 oder 3 oder 6 hat das dann die seite xyz.htm in einem neuen fenster aufgeht??

und kann ich auch noch die farbe von weiss auf orange ändern wenn das land gross wird??
jackhugo ist offline   Mit Zitat antworten
Alt 25-04-2005, 15:10   #12 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Zitat:
kannst du mir noch sagen wie ich da ein link einbaue, wenn man dann auf das land klickt.
Da du ja auch was lernen sollst, probiers mal mit dem gleichem Prinzip, also mit url_ar, onRelease und getURL.

Oder such hier mal nach for-Schleifen.
Zitat:
kann ich auch noch die farbe von weiss auf orange ändern wenn das land gross wird
Das kannst du bequem mit nem Tween lösen, schau mal in meine Signatur (animierter MC-Button).
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 26-04-2005, 14:07   #13 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
also nach dem wie oben angewandten prinzip bekomme ich es hin, allerdings klappt es irgendwie nicht mit der if-abfrage. wie bekomm ich die so unter, das die klappt??

tschüss
jackhugo ist offline   Mit Zitat antworten
Alt 26-04-2005, 14:57   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
also, ich hab das jetzt hinbekommen:

this[land_ar[i]].onRelease = function ()
{
if(i==3 || i==4 || i==5)
{
getURL("http://www.yahoo.de", _blank);
}
if(i==1 || i==2)
{
getURL("http://www.google.com", _blank);
}
};

allerdings wird jetzt immer die erste Internetadresse geöffnet. ich hab keine ahnung an was das liegt..
jackhugo ist offline   Mit Zitat antworten
Alt 26-04-2005, 15:30   #15 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Beiträge: 23
ok, hat sich erledigt. ich habs durch probieren dann doch noch hinbekommen.

this[land_ar[i]].ID=i
this[land_ar[i]].onRelease = function ()
{
if(this.ID==2 || this.ID==3 || this.ID==4)
{
getURL("http://www.yhaoo.de", _blank);
}
if(this.ID==0 || this.ID==1)
{
getURL("http://www.google.com", _blank);
}
};

allerdings verstehe ich nicht ganz warum das so geht und so wie ich oben beschrieben hab nicht...

Geändert von jackhugo (27-04-2005 um 08:44 Uhr)
jackhugo 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 04:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele