Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-04-2011, 12:45   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 8
Mouseover/out in AS3

Hi, Leute

Ich muss einen Mouseover/out in AS3 machen, habe aber leider noch keine Erfahrung mit AS3.
Und zwar ist es eine Film-Steuerung, die bei Mouseover erscheinen und bei Mouseout verschwinden soll. Wie halt die Filme bei YouTube usw.
Die Steuerung selbst habe ich nicht gemacht.

Wir hätten da dieses Script von mir als Versuch:

[script]import flash.events.MouseEvent;
var steuerung_mc = steuerung_mc; // instanzname des Movieclips, indem die Steuerung liegt

steuerung_mc.addEventListener(MouseEvent.MOUSE_OVE R,SteuerungAn);
function SteuerungAn (e:MouseEvent):void {
steuerung_mc.visible = true;
trace ('steuerung an'):void;



}
steuerung_mc.addEventListener(MouseEvent.MOUSE_OUT ,SteuerungAus);
function SteuerungAus (e:MouseEvent):void {
steuerung_mc.visible = false;
}[/script]

Beim Trace (wollt mal sehen, ob überhaupt was passiert) bekomme ich diesen Fehler:
steuerung_mc, Ebene 'actions', Bild 2, Zeile 42 1078: Label muss ein einfacher Bezeichner sein.
und ansonsten funtioniert es gar nicht. Dabei schien mir dir Logik einfach, aber wieso einfach wenn´s auch schwer geht...

Bin für jede Hilfe oder Vorschlag dankbar und eilig ist es auch noch, wegen Abgabe

VG romanHuetter
romanhuetter ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:05   #2 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.040
flash.display.DisplayObject - ActionScript 3.0 Reference for the Adobe Flash Platform

Zitat:
Whether or not the display object is visible. Display objects that are not visible are disabled. For example, if visible=false for an InteractiveObject instance, it cannot be clicked.
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:15   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.866
@roman, bitte benutz PHP oder CODE-Tags, und nicht SCRIPT, da diese (offensichtlich) nicht interpretiert werden

Zitat:
Label muss ein einfacher Bezeichner sein.
das bezieht sich auf diese Zeile:
Code:
trace ('steuerung an'):void;
hinter einen Funktionsaufruf kommt keine Typendefinition. (:void)
nur bei der Funktionsdefinition (um festzulegen, welchen Rückgabetyp diese Funktion hat)

Zitat:
var steuerung_mc = steuerung_mc; // instanzname des Movieclips, indem die Steuerung liegt
diese Zeile ist einfach nur überflüssig. und ich vermute du meinst die Instanz des Movieclips !? (Instanz != Name; das eine ist ein Objekt, das andere ein String und eine Eigenschaft dieses Objektes)

PHP-Code:
import flash.events.MouseEvent;
steuerung_mc.addEventListener(MouseEvent.MOUSE_OVERsteuerungAn);
steuerung_mc.addEventListener(MouseEvent.MOUSE_OUTsteuerungAus);

function 
steuerungAn (e:MouseEvent):void 
{
    
steuerung_mc.visible true;
    
trace ('steuerung an');
}

function 
steuerungAus (e:MouseEvent):void 
{
    
steuerung_mc.visible false;

__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:19   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 8
Danke erstmal fürs Antworten.

Aber disabled gilt auch für Mouseout? Also Mouse out = visible false und damit disabled ?
Wenn mouseover = visible = clickbar?
Hab ich das jetzt richtig verstanden?
Wenn das nicht geht, wie soll man das denn dann sonst realisieren?
romanhuetter ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:32   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 8
Zitat:
Zitat von thomas_E Beitrag anzeigen
@roman, bitte benutz PHP oder CODE-Tags, und nicht SCRIPT, da diese (offensichtlich) nicht interpretiert werden

das bezieht sich auf diese Zeile:
Code:
trace ('steuerung an'):void;
hinter einen Funktionsaufruf kommt keine Typendefinition. (:void)
nur bei der Funktionsdefinition (um festzulegen, welchen Rückgabetyp diese Funktion hat)

diese Zeile ist einfach nur überflüssig. und ich vermute du meinst die Instanz des Movieclips !? (Instanz != Name; das eine ist ein Objekt, das andere ein String und eine Eigenschaft dieses Objektes)

PHP-Code:
import flash.events.MouseEvent;
steuerung_mc.addEventListener(MouseEvent.MOUSE_OVERsteuerungAn);
steuerung_mc.addEventListener(MouseEvent.MOUSE_OUTsteuerungAus);

function 
steuerungAn (e:MouseEvent):void 
{
    
steuerung_mc.visible true;
    
trace ('steuerung an');
}

function 
steuerungAus (e:MouseEvent):void 
{
    
steuerung_mc.visible false;

Hallo Thomas, danke für deine Antwort, Der Satz war nur zur Erklährung , nicht im Script.

Habe mal deinen Code ausprobiert, bekomme aber jetzt diesen Compilerfehler:
PHP-Code:
Symbol 'steuerung_mc'Ebene 'actions'Bild 2Zeile 42    1120Zugriff auf eine nicht definierte Eigenschaft steuerung_mc.
Symbol 'steuerung_mc'Ebene 'actions'Bild 2Zeile 48    1120Zugriff auf eine nicht definierte Eigenschaft steuerung_mc.
Symbol 'steuerung_mc'Ebene 'actions'Bild 2Zeile 37    1120Zugriff auf eine nicht definierte Eigenschaft steuerung_mc.
Symbol 'steuerung_mc'Ebene 'actions'Bild 2Zeile 38    1120Zugriff auf eine nicht definierte Eigenschaft steuerung_mc
darauf hin hab ich die Var reingesetzt
PHP-Code:
var steuerung_mc steuerung_mc
und jetzt kommt der Ausgabe-Fehler:
PHP-Code:
TypeErrorError #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
    
at steuerung_fla::steuerung_mc_33/frame2() 
steuerung_mc heißt der Movieclip, aber woher holt er sich das_33?
Hast du da eine Idee?
romanhuetter ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:51   #6 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.866
Zitat:
steuerung_mc heißt der Movieclip
scheinbar nicht.
erstmal, wo liegt dieser Code jetzt?

Zitat:
Display objects that are not visible are disabled
daran hatt ich jetzt nicht gedacht, alternativ im Eltern-Element ein MOUSE_MOVE-Event registrieren, und darin hitTestPoint mit der Mausposition.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 18-04-2011, 14:27   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 8
Zitat:
Zitat von thomas_E Beitrag anzeigen
scheinbar nicht.
erstmal, wo liegt dieser Code jetzt?

daran hatt ich jetzt nicht gedacht, alternativ im Eltern-Element ein MOUSE_MOVE-Event registrieren, und darin hitTestPoint mit der Mausposition.
Also hier mal der ganze Code, der obere Teil ist nicht von mir sondern gehört zur Steuerung.
PHP-Code:
button_next.addEventListener(MouseEvent.CLICKnextClickHandler); function nextClickHandler(e:MouseEvent):void
{
    
MovieClip(root)[mc_aktuell].gotoAndStop(1);
    
flash.media.SoundMixer.stopAll();
    
MovieClip(root)[mc_next].gotoAndPlay(f_next);
}
button_stop.addEventListener(MouseEvent.CLICKstopClickHandler); function stopClickHandler(e:MouseEvent):void
{
    
MovieClip(root)[mc_aktuell].stop();
    
this.button_stop.visible false;
    
this.button_play.visible true;
    
mc_playing false;
}
button_play.addEventListener(MouseEvent.CLICKplayClickHandler); function playClickHandler(e:MouseEvent):void
{
    
MovieClip(root)[mc_aktuell].play();
    
this.button_stop.visible true;
    
this.button_play.visible false;
    
mc_playing true;
}
button_last.addEventListener(MouseEvent.CLICKlastClickHandler); function lastClickHandler(e:MouseEvent):void
{
    
MovieClip(root)[mc_aktuell].gotoAndStop(1);
    
flash.media.SoundMixer.stopAll();
    
trace("stop " mc_aktuell);
    
MovieClip(root)[mc_last].gotoAndPlay(f_last);
}
button_start.addEventListener(MouseEvent.CLICKstartClickHandler); function startClickHandler(e:MouseEvent):void
{

    
MovieClip(root)[mc_aktuell].gotoAndStop(1);
    
flash.media.SoundMixer.stopAll();
    
MovieClip(root)[mc_start].gotoAndPlay(f_start);
}


import flash.events.MouseEvent
var 
steuerung_mcMovieClip  steuerung_mc;
steuerung_mc.addEventListener(MouseEvent.MOUSE_OVERsteuerungAn); 
steuerung_mc.addEventListener(MouseEvent.MOUSE_OUTsteuerungAus); 

function 
steuerungAn (e:MouseEvent):void  

    
steuerung_mc.visible true
    
trace ('steuerung an'); 


function 
steuerungAus (e:MouseEvent):void  

    
steuerung_mc.visible false
}  

stop(); 
Der Movieclip war nicht auf Export für Actionscript, deswegen der erste Fehler aber jetzt bekomme ich diesen Fehler:

PHP-Code:
Symbol 'steuerung_mc'Ebene 'actions'Bild 2Zeile 38    1026Konstruktorfunktionen müssen Instanzmethoden sein
Der Einfachheit halber hab ich mal die Fla (CS4) drangehängt. Wäre super, wenn du da eine Lösung siehst, Bin schon langsam am verzweifeln hier

LG RomanHuetter
Angehängte Dateien
Dateityp: fla Steuerteil.fla (53,0 KB, 1x aufgerufen)
romanhuetter ist offline   Mit Zitat antworten
Alt 19-04-2011, 10:29   #8 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.866
ähm, hat das Teil schonmal funktioniert?
die Datei einthält keines der zu steuernden Elemente.

zu deiner Fehlermeldung kann ich nix sagen, da er mir vorher sagt, dass steuerung_mc garnicht existiert. Und nach gründlichem Suchen in der FLA, muss ich Flash recht geben.

da ist nix was diesen Namen trägt, oder meinem Empfinden nach diesen Namen tragen sollte.

noch folgendes:
Code:
var steuerung_mc; MovieClip  = steuerung_mc;
//muüsste wenn schon so lauten:
var steuerung_mc:MovieClip  = steuerung_mc;
//ist aber immer noch völlig überflüssig.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 19-04-2011, 12:01   #9 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 8
Zitat:
Zitat von thomas_E Beitrag anzeigen
ähm, hat das Teil schonmal funktioniert?
die Datei einthält keines der zu steuernden Elemente.

zu deiner Fehlermeldung kann ich nix sagen, da er mir vorher sagt, dass steuerung_mc garnicht existiert. Und nach gründlichem Suchen in der FLA, muss ich Flash recht geben.

da ist nix was diesen Namen trägt, oder meinem Empfinden nach diesen Namen tragen sollte.

noch folgendes:
Code:
var steuerung_mc; MovieClip  = steuerung_mc;
//muüsste wenn schon so lauten:
var steuerung_mc:MovieClip  = steuerung_mc;
//ist aber immer noch völlig überflüssig.
Konntest Du auch nicht finden, weil der Movieclip an sich steuerung_mc heißt Er kann sich ja nicht selbst aufrufen (Schäm...)Ich hatte den MC aus dem Stage rausgenommen, weil das übrige Script zur Fa. gehört und ich nicht publik machen kann.
tschuldigung.
Mittlerweile bin ich etwas schlauer geworden.
Hab das Script ausgelagert und geändert, liegt jetzt eine Ebene darüber im Stage.
PHP-Code:
import flash.events.MouseEvent
import flash.display.MovieClip;

var 
steuerung_mcMovieClip;

steuerung_mc.addEventListener(MouseEvent.MOUSE_OVERsteuerungAn); function steuerungAn(e:MouseEvent):void
{

    
MovieClip(root)[steuerung_mc].visible true;
    
    
}

steuerung_mc.addEventListener(MouseEvent.MOUSE_OUTsteuerungAus); function steuerungAus(e:MouseEvent):void
{

    
MovieClip(root)[steuerung_mc].visible false;
    

SO weit so gut, wenn ich den Film aufrufe, zeigt er mir auch brav in der Ausgabe steuerungAn und steuerungAus, aber das visible funktioniert noch nicht denn:
PHP-Code:
TypeErrorError #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
    
at steuerung_fla::MainTimeline/steuerungAn()
TypeErrorError #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
    
at steuerung_fla::MainTimeline/steuerungAus() 
Er gibt also den Funktionsnamen aus, aber führt in nicht aus und da hackt es jetzt wieder. steuerung_mc hab ich doch als Variable gesetzt und der mc hat hat auch diesen Instanznamen.

Ich werde einen Kurs über AS3 machen, aber im Moment blicke ich nicht sehr weit durch.

Hast Du noch eine Idee?

VG Roman
romanhuetter ist offline   Mit Zitat antworten
Alt 19-04-2011, 12:37   #10 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.866
PHP-Code:
import flash.events.MouseEvent
import flash.display.MovieClip;

steuerung_mc.addEventListener(MouseEvent.MOUSE_OVERsteuerungAn); function steuerungAn(e:MouseEvent):void
{
    
steuerung_mc.visible true;
}

steuerung_mc.addEventListener(MouseEvent.MOUSE_OUTsteuerungAus); function steuerungAus(e:MouseEvent):void
{
    
steuerung_mc.visible false;

steuerung_mc ist vom Typ MovieClip, mc_aktuell, etc (wo du dir die Zeile abgeschaut hast) sind Strings, die im ersten Bild definiert werden und den Instanznamen enthalten.

ka, wieso der Programmierer das so gebaut hat, denn mir fallen nur Nachteile bei der Variante ein; aber OK, wenn es läuft.

hier noch ein Beitrag, der die Klammer-Syntax näher erläutert:
Array Zugriffsoperator
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (19-04-2011 um 12:39 Uhr)
thomas_E ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, mouse out, mouse over

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS4] mouseOver Rotti Flash Einsteiger 23 12-02-2009 16:37
mouseOver bei Down *perplex* ActionScript 1 9 16-12-2005 14:46
Mouseover Firewire2002 ActionScript 1 38 18-03-2003 19:04
mouseover iC4- Flash 4 und Flash 5 2 27-01-2002 13:28
mouseover jason Flash 4 und Flash 5 3 10-01-2002 13:01


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele