Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-03-2006, 10:15   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 8
Mausabfrage dyn. Movieclip

Hallo!

Ich habe mir eine Scrollende Bildergallerie gemacht bei der ich gerne wenn auf ein Bild geklickt wird ein bestimmtes Ereignis abläuft.

function makemov (bild, timer, value) {
_global.container[value] = this.createEmptyMovieClip(value+3, value+3);
_global.container[value]._x = 0;
_global.container[value]._y = 0;
_global.container[value].loadMovie(bild);

_global.container[value].onMouseDown = function() {
if (_global.container[value].hitTest(_root._xmouse, _root._ymouse, false)) {
trace(value);
}
}

Hier das Stück Code welches den Movieclip erzeugt und meine (nicht funktionierende) Version der Mausabfrage.

Leider passiert beim klick gar nichts.

Wenn ich es mit
this.onMouseDown = function() {
if (_global.container[value].hitTest(_root._xmouse, _root._ymouse, false)) {
trace(value);
}
}

so kann ich immer nur das letzte Bild anwählen.


Woran liegt das?

Vielen Dank!

Christoph
TBird ist offline   Mit Zitat antworten
Alt 08-03-2006, 10:23   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hi und willkommen im flashforum,
probier es mal so

PHP-Code:
function makemov(bildtimervalue) {//value ist kein guter begriff. der wird schon von flash verwendet!!!
    
    
_global.container[value] = this.createEmptyMovieClip(value+3value+3);
    
_global.container[value]._x 0;
    
_global.container[value]._y 0;
    
_global.container[value].loadMovie(bild);
    
    
_global.container[value].onMouseDown = function() {
        
        if (
this.hitTest(_root._xmouse_root._ymousefalse)) {
            
            
trace(value);
            
        }
        
    };
    

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 08-03-2006, 10:23   #3 (permalink)
meutz
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 43
Hallo TBird,

die Mouse-Abfrage kannst Du z.B. über einen Listener abfragen. (Siehe auch in der Flashhilfe unter Mouse...)

Code:
var mouseListener:Object = new Object();

mouseListener.onMouseDown = function() {
    trace('Maus gedrückt...');
};

mouseListener.onMouseUp = function() {
    trace('Maus losgelassen...')
};
Mouse.addListener(mouseListener);
Gruß,
Claudia
claudiato ist offline   Mit Zitat antworten
Alt 08-03-2006, 10:30   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
mit listener ist es natürlich der korrekte weg... kommt halt auch ein stück weit rauf an was genau passieren soll

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 08-03-2006, 11:22   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 8
Hi!

Vielen Dank für die Antworten.
Das mit dem Mouse Listener ist sicher die saubere Varinate allerdings habe ich keine gute Idee dies für eine beliebige Anzahl von Bildern (Cips) einzusetzten da ich ja mit hitTest hier nicht arbeiten kann da ich ja die Clips vorher noch garnicht habe.

function moveit(item, timer) {
item._x += 1;
if (item._x == 125) {
if (_global.counter <= _global.maximum) startnext();
}
if (item._x > 400) {
switch (timer) {
case 0:
clearInterval(_global.timer0);
break;
case 1:
clearInterval(_global.timer1);
break;
case 2:
clearInterval(_global.timer2);
break;
case 3:
clearInterval(_global.timer3);
break;
}
removeMovieClip(item);
}
}

function makemov (bild, timer, wert) {
var clipname = "clip"+wert;
clip = this.createEmptyMovieClip(clipname, wert+3);
clip._x = 0;
clip._y = 100;
clip.loadMovie(bild);

clip.onMouseDown = function() {
trace("huhu?");
if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
trace(wert);
}
}

timervalue = _global.timercounter;
switch (_global.timercounter) {
case 0:
_global.timer0 = setInterval(moveit, 30, clip, timervalue);
_global.timercounter += 1;
break;
case 1:
_global.timer1 = setInterval(moveit, 30, clip, timervalue);
_global.timercounter += 1;
break;
case 2:
_global.timer2 = setInterval(moveit, 30, clip, timervalue);
_global.timercounter += 1;
break;
case 3:
_global.timer3 = setInterval(moveit, 30, clip, timervalue);
_global.timercounter = 0;
break;
}
}

function startnext () {
countit = _global.counter;
makemov (bilderarray[countit], _global.timer0, countit);
_global.counter += 1;
}

var bilderarray = new Array();
bilderarray.push("000.jpg");
bilderarray.push("001.jpg");
bilderarray.push("002.jpg");
bilderarray.push("003.jpg");
bilderarray.push("004.jpg");
bilderarray.push("005.jpg");
bilderarray.push("006.jpg");
bilderarray.push("007.jpg");
bilderarray.push("008.jpg");
bilderarray.push("009.jpg");
bilderarray.push("010.jpg");
bilderarray.push("011.jpg");

_global.maximum = bilderarray.length;
_global.timer0;
_global.timer1;
_global.timer3;
_global.timer4;
_global.timercounter = 0;
_global.counter = 0;


startnext();

stop();


Ich habe das jetzt nochmal vereinfacht und den kompletten Code hier reingestellt. Muss dazu sagen ich habe zwar grundlegende Programmierkenntnisse aber noch nie etwas in Flash gemacht.

Leider wird das Mouse Event nicht ausgelöst. (trace("huhu?") kommt nie zu stande)

Woran liegt das?

Vielen Dank für eure Hilfe!

Christoph
TBird ist offline   Mit Zitat antworten
Alt 08-03-2006, 11:47   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Suchst du vielleicht einfach onRelease()?
PHP-Code:
function makemov (bildtimerwert) {
var 
clipname "clip"+wert;
clip this.createEmptyMovieClip(clipnamewert+3);
clip.createEmptyMovieClip("bild"1);
clip.wert wert
clip
._x 0;
clip._y 100;
clip.bild.loadMovie(bild);

clip.onRelease = function() {
trace(this.wert)
}

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 10-03-2006, 11:45   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 8
Vielen Dank!

Mein Fehler war, daß ich für das Bild keinen eigenen Clip angelegt habe.

LG

Christoph
TBird 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:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele