Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-10-2011, 20:20   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 670
Itemrenderer für ComboBox mit Bildern

Hallo zusammen.

Ich hab ein Problem was mich noch verzweifeln lässt... Ich versuche in einer ComboBox Bilder darzustellen. Der DataProvider ist eine ArrayCollection mit den Werten "name" und "bild". "bild" ist dabei ein ByteArray.

Ich habe meiner ComboBox den DataProvider als ganzes zugeordnet und dann einen ItemRenderer erstellt.

Wenn ich dort ein Label und ein Image erstellen lasse zeigt er mir die Bilder in der ComboBox an. Wenn ich dagegen das Label weg nehme kommt garnichts mehr (nur ein ganz kleiner weißer Kasten unten links an der ComboBox).

PHP-Code:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                autoDrawBackground="true">
    
    
    <s:Label text="{data.name}"/>
    <s:Image source="{data.bild}"/>
    
</s:ItemRenderer>
PHP-Code:
<s:ComboBox id="auswahlLogos" width="150" dataProvider="{logos}" itemRenderer="Renderer.LogoRenderer"/> 
Ich habe auch versucht über eine AS-Klasse meine Bilder anzuzeigen allerdings ohne Erfolg. Auch hier muss ich ein Label angeben damit es angezeigt wird...

PHP-Code:
package Renderer 
{
    
import mx.containers.VBox;
    
import mx.controls.Image;
    
import mx.controls.Label;
    
import mx.messaging.AbstractConsumer;
    
    public class 
LogoRenderer extends VBox
    
{
        private var 
_image:Image;
        private var 
_label:Label;
        
        
override public function set data(value:Object):void
        
{
            
this.setStyle("horizontalAlign","center");  
            
super.data value;
            
invalidateProperties();
        }
        
        public function 
LogoRenderer()
        {
            
        }
        
        
override protected function commitProperties():void
        
{
            
super.commitProperties();
            
            
_image.source data data.bild data;
            
            
// es wird auch hier nur was angezeigt wenn ein Label exisitert!
            
_label.text data.name.toString();
            
        }
        
        
override protected function createChildren():void
        
{
            
super.createChildren();
            if (!
_image)
            {
                
_image = new Image();
                
//_image.trustContent = true;
                
_image.scaleContent true;
                
_image.scaleX 0.5;
                
_image.scaleY 0.5;
                
addChild(_image);
            }
            if(!
_label)
            {    
                
_label = new Label();
                
addChild(_label);
            }
        }
    }

Sehr merkwürdig das Ganze und ich finde einfach keine Lösung dafür

Ist es eigentlich möglich das Bild auch als Auswahl darzustellen. D.h., wenn man es aus der Liste ausgewählt hat? Bei mir steht nach ner Auswahl nur [object Object] in dem Feld.

Wäre es besser DropDownList zu verwenden? Ich möchte ja nur die Logos auswählen und nichts verändern / suchen.

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 12-10-2011, 20:40   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Es wird offenbar keine Größe ermittelt. Setze mal minWidth und minHeight.
Omega Psi ist offline   Mit Zitat antworten
Alt 13-10-2011, 09:17   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 670
Guten Morgen Omega Psi.

Danke für den Tipp. Ich dachte, dass die Angabe der Breite ausreichen würde: _image.width = 150; (ist nicht oben im Code sichtbar aber hatte ich gestern noch versucht)

Mit minHeight und minWidth klappt es jetzt

Jetzt stellt sich mir nur noch die Frage wie man die Auswahl richtig darstellt. Wie gesagt steht ja nur [object Object] in dem Feld.
Muss man dafür eine neue Komponente schreiben welche die ComboBox erweitert? Falls ja spiele ich mit dem Gedanken eine List oder TileList zu verwenden. Evtl. wäre das für die Auswahl eines Logos etwas besser geeignet?!

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 13-10-2011, 09:22   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Setze ich mal damit auseinander, wie man ItemRenderer baut, auch im Hiblick auf labelField und labelFunction. Und von welchem Feld redest du?
Omega Psi ist offline   Mit Zitat antworten
Alt 13-10-2011, 09:54   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 670
Ich meinte das Feld, in dem nach der Auswahl das Element angezeigt wird (das, wo z.b. auch das Prompt angezeigt wird)
Das mit dem LabelField hat soweit geklappt. Er schreibt mir dann den Namen der Datei in das Feld. Wenn ich versuche über eine Label-Funktion ein Bild hineinschreiben zu lassen, schreibt er mit nur den Namen des Bildes in das Feld In der Hilfe steht auch nur die Syntax für Strings. Von dem her wird das wohl so passen.

Vorerst lasse ich es erstmal bei dem Namen der Datei und werde später auf eine (Tile)List umsteigen. Ich denke diese ist benutzerfreundlicher.

Danke nochmal für deine Hilfe hier und überhaupt

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 13-10-2011, 10:08   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.419
Hast du dir mal die labelFunction genauer angeschaut? Und ja, du müsstest eine eigene ComboBox Skin bauen.
Omega Psi 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
EventListener und ItemRenderer snatch-ic Flex programmieren 6 08-10-2010 15:29
[Flash CS3] Galerie mit 70 Bildern, die als Slideshow aus 1000 Bildern geladen wird hollo Flash Einsteiger 0 23-11-2009 17:07
itemRenderer porcupine Flex programmieren 4 23-09-2009 20:32
combobox nur als itemRenderer _Zoidberg_ ActionScript 3 1 03-03-2009 21:41
Eine Bildergalerie mit drei Bildern in einer Reihe und jeweils wechselnden Bildern Zeichenstern Flash Einsteiger 1 15-02-2008 14:06


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele