Domanda

Sto incorporando un'immagine come questa:

[Embed(source="/tool_deleteUp.png")]
private static const c_deleteButton_styleUp:Class;

Lo sto usando in questo modo:

_removeButton = new Button();
_removeButton.setStyle('upSkin', c_deleteButton_styleUp);

Quando ruoto il pulsante, l'immagine non si ridimensiona uniformemente. Conosco i trucchi che uno usa per ridimensionare un'immagine caricata in un controllo Immagine, ma sto sbattendo la testa contro un muro cercando di capire come farlo qui.

Aiuto!

È stato utile?

Soluzione 2

Una soluzione migliore e più generale. Non solo gestisce il caso precedente, ma lo fa

  • Senza sottoclassi
  • Funziona con qualsiasi componente UIC, incluso IRawChildContainers (come Container), che nasconde i bambini skin in rawChildren
  • Regola solo gli elementi aggiunti di recente, anziché eseguirli ogni volta che il controllo si aggiorna.

public static function smoothChildBitmaps(object:UIComponent):void{

    // Define a nested smooth method
    function smoothChildren(val:UIComponent):void{
        var childList:IChildList;
        if(val is IRawChildrenContainer){
            childList = (val as IRawChildrenContainer).rawChildren;
        }
        else{
            childList = object;
        }

        for(var i:int = 0; i < childList.numChildren; i++){
            var child:Bitmap = childList.getChildAt(i) as Bitmap;
            if(child != null){
                child.smoothing = true;
            }
        }
    };

    // Call the nested method on the object right away
    smoothChildren(object);

    // Set up an event handler to re-call the method when a child is added
    object.addEventListener(
        Event.ADDED,
        function(args:Event):void{
            smoothChildren(object);
        }
    );
}

Altri suggerimenti

un modo bizzarro sarebbe quello di attraversare i figli / nipoti del pulsante, per trovare il Bitmap corrispondente che è di tipo c_deleteButton_styleUp e impostarlo su true. .. è un grande difetto di flessibilità, che a volte richiede lezioni per lo styling anche se alcuni IDisplayObjectFactory sarebbero completamente sufficienti a tale scopo e renderebbero la tua vita molto più facile ... ma la vita è vita .. .

non conosco un modo semplice di flettere ... l'unica possibilità che mi viene in mente è quella di creare un file SWF, che contenga la risorsa come simbolo, con il livellamento attivato e incorporare questo simbolo da quel file SWF ...

spero che aiuti ...

greetz

back2dos

Stupido, ma funziona.

import flash.display.Bitmap;
import mx.controls.Button;

public class SmoothButton extends Button{
    protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
        for(var i:int = 0; i < this.numChildren; i++){
            var child:Bitmap = this.getChildAt(i) as Bitmap;
            if(child != null){
                child.smoothing = true;
            }
        }
    }

}

Non so cosa abbiate sbattuto la testa su senza offesa, solo scherzando . Avevo una scrivania :-P

Comunque, quegli script presentati sono totalmente inutili! Per prima cosa non puoi lanciare un uicomponent in bitmap! L'altra cosa è che la sceneggiatura dei secondi con rawchildren è più o meno la stessa. rawchildren prende i tuoi bambini e il cromo del contenitore - tutto qui. Se hai un pulsante in un contenitore, puoi provare a smussare il cromo del contenitore - il resto rimane lo stesso poiché tutti i cast su bitmap falliranno.

Quindi, qualcuno ha rdfm?

D'altra parte. Si potrebbe provare stage.quality a stagequality.best. Se controlli i forum di Adobe http://forums.adobe.com/thread/427899 tu vedrà che il flex funziona bene - solo il tipo di aria ignora questo :-(

Se quei due script funzionassero mai - esp. la parte con pulsante come bitmap - andrò a sbattere la testa da qualche parte :-). Non vedo NESSUN MODO nella gerarchia di classi che questo potrebbe funzionare. Dopotutto, numChildren ti dà solo uicomponents o displayobjects ma niente di più!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top