Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2008, 18:44   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 34
problem mit hitTest

Hallo,

mal wieder ein Problem mit hitTest:

Ich habe einen Scrolltext, in den ich aus XML Daten einlese.
Ich will, dass während der Test gescrollt wird und wenn die Überschriften einen bestimmten Bereich des Scrollbereichs überrollen, dass etwas passiert, z.B. ein Bild geladen wird.

Leider gelingt es mir nicht...

Bisher habe ich das:



Code:
// zu testzwecken ausgabe true/false im textfeld:
this.createTextField("status_txt", 10000, 300, 220, 100, 22);

for (var i=0; i<3; i++) {
   this.createEmptyMovieClip("sensor"+i, i+12000);
      
      this["sensor"+i].loadMovie("aktuell/sensor.jpg");
      
      this["sensor"+i]._y = neues_y;
      
      this["sensor"+i].id = i;
      
      this._parent.area_mc.onEnterFrame = function()
         {
             
            status_txt.text = this.hitTest(["sensor"+this.id]);
            
         };
// dazwischen werden weitere Textbausteine aus XML geladen....

      neues_y = this["Text"+i]._y + texthoehe +32; 
}

Der hittest reagiert nicht. was mache ich falsch????
Der area_mc ist ok, ein einzelnes Sensorfeld (nicht in der schleife generiert) funktioniert, nur die mehrfach generierten Sensoren tun nicht...

bitte um tipps. Danke!!!
mikune ist offline   Mit Zitat antworten
Alt 07-09-2008, 15:50   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
this.hitTest(["sensor"+this.id]);

in hitTest steht ein array damit kann flash nichts anfangen.
alles was in eckigen klammern steht ist ein array []
im array steht ein text, damit kann flash hier auch nichts anfangen
alles was in anführungszeichen steht ist text.

mal anders formuliert, aber sinngemäss das selbe hast du geschrieben:
this.hitTest(new Array("sensor1") );

-----------------
// das ist ok, weils mit einem objekt (hier this) beginnt, weiss flash, das es wegen der eckigen klammer ein objekt namens xxx zu suchen gilt:
this["sensor"+i].id = i;
// dann versuchst du aber offensichtlich diese variable in this._parent.area_mc zu benützen? in area_mc gibt es aber kein .id
this._parent.area_mc.onEnterFrame
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (07-09-2008 um 15:59 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-09-2008, 17:21   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 34
Hi, vielen Dank für die Hinweise,

die kann ich nachvollziehen, so wie du es beschreibst.
offensichtlich habe ich da einiges falsch gemacht. leider bekomme ichs nicht hin, habe verschiedenes probiert. muss gestehen, dass mir noch nicht alle feinheiten klar sind, ich lerne noch...

so gehts leider auch nicht:

this["sensor"+i].onEnterFrame = function()
{
//status_txt.text = this.hitTest(this["ueber_schalt"+i]);
status_txt.text = this.hitTest(this._parent.area_mc);
//trace (status_txt);
};

vermutlich darf man so onEnterFrame nicht verwenden?

wenn jemand ein gutes tut zu so was kennt wäre es auch super.
die flashilfe finde ich besch*** formuliert,

wenn du einen konkreteren tipp hättest wie man mein problem elegant löst wäre es super. Danke!!
mikune ist offline   Mit Zitat antworten
Alt 08-09-2008, 23:50   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
leider ist das script so unverständlich, das ich auch nicht erahnen kann, was du eigentlich erreichen willst. sonst hätte ich diesbezüglich einen vorschlag gebracht.

tipp:
erfassse deine neuen mc's in einem array
und/ oder erstelle extra ein mc in das du diese sensoren reingibst.

sensoren=[];
..
sensoren.push( this.createEmptyMovieClip("sensor"+i, i+12000) );

so brauchst du nicht die namen zu rekonstruieren, sondern greifst über die zeiger im array auf die mc's zu.



tipp2:
ist jetzt kein fehler, aber ziemlich unnötig: die setzt 3x das onEnterFrame
nimm das aus der schleife raus.

for (var i=0; i<3; i++) {
..
this._parent.area_mc.onEnterFrame = function()
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-09-2008 um 23:54 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 09-09-2008, 21:35   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 34
OK, mal gucken, ob mir das mit dem array weiterhilft.

Nur zur Erläuterung: Ich will dass in einem Newsanzeiger, der als scrolltext funktioniert, immer dann, wenn eine Meldung nach oben (oder auch wieder nach unten) gescrollt wurde (also wenn die Überschrift der Meldung eine bestimmte y-Position erreicht) das zugehörige Bild zur Meldung geladen wird. Daher der Sensor in jeder Meldung, der Überprüft ob die Überschrift zu z.B. Meldung 3 gerade am oberen Rand (dort sitzt area_mc und wartet) des sichtbaren Bereichs meines Scollfeldes sitzt...

Vermultlich ein blödsinnig komplizierter Ansatz? Dachte das wäre simpel... mit statischem text funzt es ja auch...
mikune ist offline   Mit Zitat antworten
Alt 09-09-2008, 22:34   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von mikune Beitrag anzeigen
also wenn die Überschrift der Meldung eine bestimmte y-Position erreicht
dann teste doch gegen die y-position, wozu überhaupt ein hitTest?

hitTest auf text ist sowieso ungeschickt, weil nur das 'schwarze' des textes als fläche gilt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele