Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-03-2010, 12:47   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 40
Button currentState

Hi,

ich glaube ich hab ein Verständnisproblem mit der Eigenschaft "currentState" von Spark-Buttons.
In meinem Skin sind die folgenden vier standardmäßig vorhandenen States definiert:

HTML-Code:
 <s:states>
        <s:State name="up" />
        <s:State name="over" />
        <s:State name="down" />
        <s:State name="disabled" />
    </s:states>
Mein Button sieht folgendermaßen aus:

HTML-Code:
<s:Button id="testBtn" styleName="testBtn" skinClass="skins.subMenuButtonSkin" creationComplete="setState();" />
Ich möchte nun den Status "down" hervorrufen und verwende dabei folgenden AS3-Code in der Funktion setState():void

PHP-Code:
testBtn.setCurrentState("down"); 
Folgende Fehlermeldung tritt auf:

Zitat:
ArgumentError: Nicht definierter Zustand 'down'.
Kann mir das kurz jemand erklären?

Vielen Dank schonmal!

cmdrkeen
cmdrkeen ist offline   Mit Zitat antworten
Alt 28-03-2010, 13:13   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
So wie dein Code aussieht hast du die leeren States nicht für den Button definiert, sondern in der gleichen MXML-Datei in der du den Button defniert hast. Der gesetzte state sollte eigentlich auf das von die gesetzte Skin angwendet werden. Und da scheint dieser State nicht zu existieren.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 28-03-2010, 13:24   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 40
Hi,

danke für Deine Antwort!

Die States die ich gepostet habe, sind im Skin skins.subMenuButtonSkin definiert, der Button liegt in meiner Applikation.
Ich denke daran kann es nicht liegen, oder hab' ich Dich falsch verstanden?

Grüße,
cmdrkeen
cmdrkeen ist offline   Mit Zitat antworten
Alt 29-03-2010, 15:15   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 40
Weiß niemand wie ich die currentState von Buttons verändere?

Auch wenn ich lediglich folgende Zeile schreibe, erhalte ich eine Fehlermeldung (Nicht definierter Zustand 'down'.):


<s:Button currentState="down" />



Obwohl doch der Status "down" für die Buttonkomponente definiert ist?
cmdrkeen ist offline   Mit Zitat antworten
Alt 27-09-2010, 08:48   #5 (permalink)
Bamboocha
 
Benutzerbild von CrazyMind
 
Registriert seit: Jan 2006
Ort: Schweiz
Beiträge: 69
Hast du eine Lösung gefunden?
Bin gerade beim gleichen Problem.

Ich vermute mal das es mit dem Status eines übergeordneten Componente zutun hat.

Custom Skinnable Container <- State:Open
- Custom Button <- Stateisabled

Dies für zu folgenden Error: Nicht definierter Zustand 'disabled'
__________________
Wer kämpft kann verlieren. Wer nicht kämpft hat schon verloren.
CrazyMind ist offline   Mit Zitat antworten
Alt 27-09-2010, 08:57   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Bitte Code posten, alles andere ist ins Blaue schiessen. In Flex 4 muss man die getCurrentSkinState Methode überschreiben.
Omega Psi ist offline   Mit Zitat antworten
Alt 27-09-2010, 09:22   #7 (permalink)
Bamboocha
 
Benutzerbild von CrazyMind
 
Registriert seit: Jan 2006
Ort: Schweiz
Beiträge: 69
Was ich beim debuggen bemerkt habe ist, dass der button test kein einzigen state hat. also bei UiComponent.as bei der methode getState.

Ich habe jetzt mal meinen CustomButton weggelassen, und einen standard button rein gehängt. mit diesem geht es auch nicht

Code:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"
         xmlns:components="ch.ncag.pureTest.view.components.*" currentState="normal" width="100%" height="100" height.full="100%">

    <fx:Script>
        <![CDATA[
            protected function test_clickHandler(event:MouseEvent):void
            {
                test.setCurrentState("disabled");
                // TODO Automatisch generierter Methoden-Stub
            }
        ]]>
    </fx:Script>
    
    <s:states>
        <s:State name="normal" />
        <s:State name="full" />
    </s:states>
    
    <s:transitions>
        <s:Transition fromState="normal" toState="full">
            <s:Fade target="{backgroundRect}" duration="600" /> 
        </s:Transition>
        <s:Transition fromState="full" toState="normal">
            <s:Sequence duration="600">
                <s:Fade target="{backgroundRect}" />
                <s:Resize target="{this}" duration="1" />
            </s:Sequence>
        </s:Transition>
    </s:transitions>
    
    <s:Rect id="backgroundRect" width="100%" height="100%" alpha="0" alpha.full="0.5">
        <s:fill><s:SolidColor color="0xFF0000" /></s:fill>
    </s:Rect>
    
    <s:Button id="test" label="i will throw an error" left="400" click="test_clickHandler(event)" />
    
    <components:PrintContainer id="printContainer" />
    
</s:Group>
__________________
Wer kämpft kann verlieren. Wer nicht kämpft hat schon verloren.
CrazyMind ist offline   Mit Zitat antworten
Alt 27-09-2010, 09:31   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Die Komponente, die du gepostet hast, wo soll diese Verwendung finden?
Omega Psi ist offline   Mit Zitat antworten
Alt 27-09-2010, 09:54   #9 (permalink)
Bamboocha
 
Benutzerbild von CrazyMind
 
Registriert seit: Jan 2006
Ort: Schweiz
Beiträge: 69
Diese ist der Application zugewiesen.

HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               xmlns:components="ch.ncag.pureTest.view.components.*"
               xmlns:content="ch.ncag.pureTest.view.components.content.*"
               minWidth="955" minHeight="600" width="100%" height="100%"
               creationComplete="facade.startup(this)" 
               >
    
    <fx:Script>
        <![CDATA[
            import ch.ncag.pureTest.ApplicationFacade;
            import fr.kapit.PureMVCConsole;
            
            private var facade:ApplicationFacade = ApplicationFacade.getInstance();
                        
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Platzieren Sie nichtvisuelle Elemente (z.*B. Dienste, Wertobjekte) hier -->
    </fx:Declarations>
    
    
        
    <mx:ViewStack id="contentContainer" width="100%" top="150" bottom="10" resizeToContent="true" creationPolicy="all">
        <content:ContentOne id="content1" />
        <content:ContentTwo id="content2" />
        <content:ContentTree id="content3" />
    </mx:ViewStack>
    
<!-- ************* HIER ************* -->
    <components:Header id="header" />
<!-- ************* **** ************* -->    

    <components:LoginPanel id="loginPanel" />
</s:Application>
__________________
Wer kämpft kann verlieren. Wer nicht kämpft hat schon verloren.
CrazyMind ist offline   Mit Zitat antworten
Alt 27-09-2010, 09:56   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Mach bitte einen neuen Thread auf und beschreibe das Problem genauer.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, button, currentstate, mxml, spark

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
[Flash CS3] Button Handling unter CS3 ein Button wird geklickt alle andern geändert... Meier297 Flash Einsteiger 2 16-01-2009 13:32
Button per Actionscript, muss der button immer im ersten Frame liegen? vietluan ActionScript 2 3 19-10-2008 14:48
Button 1 löst ani, button 2 auch, aber erst wenn ani1 fertig ist Samuel ActionScript 1 9 12-01-2005 17:47
button über button -> trifft das auch auf mein problem zu ?? ( incl. beispiel) miike Flash 4 und Flash 5 2 14-05-2002 01:15
Wenn 1 Button gedrückt wird dann soll der 2. Button wieder in Ausgangsposition...... illon Flash 4 und Flash 5 36 07-05-2002 14:49


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele