Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-12-2004, 13:46   #1 (permalink)
Oberschlauberger
 
Registriert seit: Nov 2004
Beiträge: 152
MC onclick an bestimmte position setzen

Hi!

Ich verfüge bisher leider nur über sehr beschränkte AS kentnisse. Und versuche grad mit dem was ich bisher erlernt habe eine kleine Webseite zu erstellen (aller anfang ist schwer ).

Für die Navi hab ich mir ein Menü vorgestellt, das bei Mausklick (klick irgendwo auf der Seite) genau an der mausposition einblendet. Und bei mouseout wieder ausblendet.

Das Mouseout ist ja kein Problem. Aber beim Rest verzweifel ich grad. Hab die letzten Stunden mit der Suche im Forum und mit experimentieren verbracht aber ohne Erfolg. Ich weiß zwar wie ich die maus koordinaten auslese und runden lasse, aber wie übergeb ich die Koordinaten an den Movieclip?
Und wie bring ich Flash dazu den MC aus der Bibliothek zu holen und an diese position zu setzen?
Agent-Orange ist offline   Mit Zitat antworten
Alt 01-12-2004, 13:51   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi!

geh in die bibiliothek und klicke dort rechts auf dein Menü-mc und dort auf verknüpfung, dann "in erstes bild exportieren" und "verknüpfung mit as" aktivieren und einen verknüpfungsnamen eingaben (z.b. "menu") , dann ok klicken!
jetzt kannst du im script mit
ActionScript:
  1. _root.attachMovieClip("menu",1);
das menü auf _root attachen!

..so das ganze willste machen wenn du klickst.. und zwar auf root... und dann soll as menü auch noch da hin, wo geklickt wurde(ungetestet):
ActionScript:
  1. _root.onRelease = function () {
  2.   this.attachMovieClip("menu",1);//attachen
  3.   this.menu._x = _root._xmouse;//x position
  4.   this.menu._y = _root._ymouse;//y position
  5. }
fertig!

das wird wahrscheinlich nicht so 100%ig funzen!
dazu müsstest du dann noch nen paar sonderfälle betrachten.. z.b. wenn das menü noch auf der Bühne ist, dann kannste des nicht wieder attachen (also kannst schon.. aber dann haste des 2 mal auf der Bühne... und das auch noch mit dem selben instanznamen...)

grz
pape
pape ist offline   Mit Zitat antworten
Alt 01-12-2004, 14:09   #3 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Verdammt zu spät
Ich poste es trotzdem

Hört sich nach einem Kontext Menü für die linken Maustaste an.
1. Erstelle ein MC der später dein Menü sein soll und lösche ihn von der Bühne.
2. Gehe in die Bib. markier dein soeben erstellten MC rechte Mausetaste>Verknüpfung...>Export für AS und vergib einen Name (kMenu)
Damit wir ihn später auf die Bühne rufen können.
3. Jetzt kommt das AS in die Hauptzeitleiste (HZL):
ActionScript:
  1. onMouseDown = function () {
  2.     this.attachMovie("kMenu", "kMenu", 1);
  3.         // : hier wird der MC aus der Bib. angesprochen und auf die Bühne geholt
  4.     this.kMenu._x=this._xmouse;
  5.     this.kMenu._y=this._ymouse;
  6.         // : hier wird er auf die Koordinaten des Mauszeigers positioniert
  7. };
  8. onMouseUp = function () {
  9.     this.kMenu.removeMovieClip();
  10.         // : hier wird der MC wieder gelöscht
  11. };
EDIT:
* Hi pape
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (01-12-2004 um 14:12 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 01-12-2004, 14:37   #4 (permalink)
Oberschlauberger
 
Registriert seit: Nov 2004
Beiträge: 152
Post

Tausend Dank für die schnellen und Umfassenden Antworten.

Also die Lösung von pape bekam ich leider nicht zum laufen. Da ich erst am anfang von ActionScript stehe war ich leider nicht in der Lage das soweit zu verändern damit es läuft.

Die Lösung von psyk bekam ich zum laufen. Ich mußte sie noch geringfügig ändern aber das war kein Problem.
Bei der Lösung erschien das Menü sobald die Maustaste unten war und löschte sich wieder sobald die Taste wieder losgelassen wurde.
Ich hab das folgendermaßen geändert. Auf Bild1 ist folgender Teil des Scripts:

PHP-Code:
onMouseDown = function () { 
this.attachMovie("kMenu""kMenu"1); 
        
// : hier wird der MC aus der Bib. angesprochen und auf die Bühne geholt 
    
this.kMenu._x=this._xmouse 10;  // : X-Position der Maus -10 Pixel um   gleich über dem Menü zu sein
    
this.kMenu._y=0// : Y-Position Aufgrund meines Designs auf 0 gesetzt
        // : hier wird er auf die Koordinaten des Mauszeigers positioniert 
}; 
Im MC (kMenu) hab ich eine Schaltfläche eingefügt damit der Test funktionieren kann. Auf der Schaltfläche liegt folgender Code:

PHP-Code:
on (rollOut) {
    
_root.kMenu.removeMovieClip();


Jetzt funzt es

In dem MC

Geändert von Agent-Orange (01-12-2004 um 14:39 Uhr)
Agent-Orange ist offline   Mit Zitat antworten
Alt 01-12-2004, 15:33   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Nimm das von dir geschriebne mal aus dem kMenu raus und schreib wie in meiner Lösung das ins erste Bild.
ActionScript:
  1. _root.kMenu.onRollOut = function () {
  2.      this.removeMovieClip();
  3. }
Das AS ist eigentlich das gleiche wie deins, aber wenn mich nicht alles täuscht seit Flash MX nicht mehr empfohlen.
Meins ist nach der neuen Syntax und .
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 02-12-2004, 08:25   #6 (permalink)
Oberschlauberger
 
Registriert seit: Nov 2004
Beiträge: 152
Danke!

Ich hab dazu gestern mal meinen Dozenten befragt und er hat mir das ein bischen anders gezeigt. Er meinte das der rollout event nicht unbedingt zuverlässig wäre und so habe ich als bedingung im kMenu jeweils die Randkoordinaten des Menüs eingesetzt:

PHP-Code:
this.onEnterFrame = function()
{
    if(
this._xmouse <-10 || this._xmouse >92)    
    {
        
_root.menue=0;
        
this.removeMovieClip();
    }
    else
    {
        
_root.menue=1;
    }
    

Die Zeile _root.menu=1 kommt von einer abfrage der die funktion nur auslöst wenn variable menue auf 0 ist. Ich hatte danach noch das problem das bei jedem klick im untermenue das komplette kMenu wieder auf den neuen klick ausgerichtet wurde.

Ich schätze mal das ist wieder ein Fall von "viele Wege führen nach Rom"

Geändert von Agent-Orange (02-12-2004 um 08:27 Uhr)
Agent-Orange 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 22:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele