Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-07-2009, 13:06   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 30
Question Funktionsaufruf falsch?

Servus,

mach gerade meine ersten Gehversuche mit Flex.

Ich hab hier n Button, der bei rollOver eine Funktion aufruft:

Code:
<mx:Button					
 styleName="tinySpot" 
 x="{hotelRepeater.currentItem.@x}" 
 y="{hotelRepeater.currentItem.@y}"
 rollOver="createBigHotelTip(event,hotelRepeater.currentItem.name)"
 rollOut="destroyBigHotelTip()" 
 width="12" height="12" />
Die Funktion hat auch funktioniert bis ich den 2. Parameter hotelRepeater.currentItem.name eingebaut und mit übergeben habe. Seit dem kommt kein Tolltip mehr (aber auch keine Fehlermeldung )

Hier die Funktion:

Code:
private function createBigHotelTip(event:Object,s:String):void {
 var x:Number=event.currentTarget.x;
 var y:Number=event.currentTarget.y;
 y=y-72;
 x=x+1;
 myTip = ToolTipManager.createToolTip(s,x,y,"errorTipAbove") as ToolTip;
 myTip.width = 250;
 myTip.height = 150;
}
Wenn ich statt hotelRepeater.currentItem.name einen fixen String ala rollOver="createBigHotelTip(event,'Teststring')" übergebe funktioniert es.

Oh, und ich "missbrauche" ja gerade den Button ein wenig. Gibt es eine andere Komponente, die für ein kleines Quadrat auf einer Landkarte besser geeignet ist?

Grüße,
qualle
qualle85 ist offline   Mit Zitat antworten
Alt 03-07-2009, 13:08   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Und das Listener System. Die Signatur der Funktion ist falsch. Kannst du das currentItem aus den Repeater nicht direkt aus dem Repeater holen bei einem dem Funktionaufruf?
Omega Psi ist offline   Mit Zitat antworten
Alt 03-07-2009, 13:31   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 30
Sorry, das is mir jetzt als Neuling zu hoch. Was sollte ich mir denn zum Thema Listener System anschauen um es besser zu machen?


Hab eben noch versucht das komplette Repeater Objekt zu übergeben aber das war glaub quatsch. Da bekomm ich höchstens über rep.name den Namen des Repeater Objekts raus


Gibt es in Flash eine art print_r(); oder var_dump();? Komm aus der PHP-Welt..
qualle85 ist offline   Mit Zitat antworten
Alt 03-07-2009, 13:39   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Dann vergesse am besten alles was du weisst, was die Mechanik der Sprache angeht. ActionScript ist näher an Java als als PHP.

In Bezug auf das Eventsystem: Listener werden mit folgender Signatur definert:
Code:
[visibility namespace] function <name>(Event):void
Das heisst du darfst nur ein Argument übergeben. Was die Hausaufgaben angeht: wichtig ist zu verstehen wie Events dispatched werden und wie man EventListener registriert. {<$expression>} Bindungen sind zwar schick, aber ohne die grundlegenden Sprachmechanismen verstanden zu haben führen sie schnell zu schlecht lesbaren und wartbarem Code.
Omega Psi ist offline   Mit Zitat antworten
Alt 03-07-2009, 13:47   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 30
Ah ok - eine Funktion ist, wenn nur ein Event übergeben wird, ein Listener.

Bissle unkonsequent wenn man dann doch einen zweiten Parameter unter bestimmten Bedingungen (fixer String) übergeben kann oder? Aber ich will nich nörgeln solang ich nich die Sprache kenn

Hab mir deswegen erst mal n Buch bestellt und hoff, dass das mich weiter bringt.

Danke für die Antworten Flo
qualle85 ist offline   Mit Zitat antworten
Alt 06-07-2009, 10:37   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 30
Habs - einfach über "data" beim Button das aktuelle Repeater Item übergeben:
Code:
<mx:Button					
 styleName="tinySpot" 
 x="{hotelRepeater.currentItem.@x}" 
 y="{hotelRepeater.currentItem.@y}"
 toolTip=" "
 data="{hotelRepeater.currentItem}" 
 toolTipCreate="createCustomToolTip(event)"
 width="12" height="12" />
Dieses kann man dann über

Code:
private function createCustomToolTip(event:ToolTipEvent):void {
 var toolTip:CustomToolTip = new CustomToolTip();
 toolTip.hotel = event.target.data;	// Pass data to ToolTip
 toolTip.x = 500;
 toolTip.y = 500;
 event.toolTip = toolTip;
}
auslesen.

Hab isch von hier: http://livedocs.adobe.com/flex/3/htm...ooltips_1.html --> You can also create a custom ToolTip by ...

Nu frag ich mich nur wieso ich dieses Custom toolTip nicht verschieben kann ... Bin dann mal wieder in der Manual...
qualle85 ist offline   Mit Zitat antworten
Alt 07-07-2009, 14:56   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 30
...anscheinend gar nicht. Habs mit Canvas und x / y gelöst.
qualle85 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
button, tooltip

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 13:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele