| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2011
Beiträge: 2
|
Hallo liebe Nutzer des Flashforums, ich muss für die "Uni" ein kleines Programm programmieren. Ich hänge leider nur an einem kleinen Punkt, der uns vorgegeben wurde. Im groben geht es um ein Loginpanel, welches nach dem Login auf einen anderen State umschalten soll. Im Grunde genommen, wenn ich mir die Tutorials im Netz so angucke, ganz einfach. Ich habe nur das folgende Problem, dass wir in einer Datei die States festgelegt haben und zwei andere Dateien die States darstellen. Dazu kommt, dass wir eine "ausgelagerte" Customeventklasse schreiben sollten. Nun zu meinem Problem. Ich bin soweit, dass ich aus dem ersten State heraus das Event feuern kann und es in der CustomEventklasse ein Ereignis auslösen kann... (also z.B. trace("")). Nun soll aber noch der anderen Klasse mitgeteilt werden, dass dieses Event auch ausgelöst wurde, damit diese in den nächsten State schalten kann. Wie das funktioniert ist mir zwar klar, jedoch weiß ich nicht, wie ich die Methode dafür auslösen soll :( Ich hänge einfach mal den Code in Einzelteilen dran (ich kann ihn leider nicht in Spoiler setzen also schonmal entschuldigung für die Wall of Text) LoginPanel.mxml: ... <fx:Metadata> [Event(name="login", type="de.beuth.events.CustomEvent")] </fx:Metadata> ... <s:Button id="loginButton" x="196" y="178" label="Login" click="dispatchEvent(new CustomEvent('login'))"> <fx:Script> <![CDATA[ import de.beuth.events.CustomEvent; ]]> </fx:Script> </s:Button> ... Customevent.as ... public function CustomEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); trace("antwort"); Alert.show("popup"); ... Flex_Uebung2.mxml ... <fx:Script> <![CDATA[ import de.beuth.events.CustomEvent; import de.beuth.view.*; this.currentState public function switchStateByEvent(e:CustomEvent):void{ if(e.isLoggedIn == true){ currentState = 'LoggedInState'; } else currentState = 'LoginState'; } ]]> </fx:Script> <s:states> <s:State name="LogInState"/> <s:State name="LoggedInState"/> </s:states> <view:LoginPanel includeIn="LogInState" x="0" y="0"> </view:LoginPanel> <view:MainView includeIn="LoggedInState" x="0" y="0"> </view:MainView> <view:LoginPanel id="loginPanel" login="CustomEvent(event)"> </view:LoginPanel> ... |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
|
Ich hab da mal eine Kleinigkeit vorbereitet. Du hast das Event dispatching eventuell noch nicht verstanden Code: package org.icodeapps.filters.components.events
{
import flash.events.Event;
public class LoginPanelEvent extends Event
{
//---------------------------------------------------------------------
//
// Class Constants
//
//---------------------------------------------------------------------
public static const LOGGED_IN:String = 'loggedIn';
public static const LOGGED_OUT:String = 'loggedOut';
//---------------------------------------------------------------------
//
// Constructor
//
//---------------------------------------------------------------------
public function LoginPanelEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false)
{
super(type, bubbles, cancelable);
}
//---------------------------------------------------------------------
//
// Overridden Methods
//
//---------------------------------------------------------------------
override public function clone():Event
{
return new LoginPanelEvent(type, bubbles, cancelable);
}
}
} Code: <?xml version="1.0"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="creationCompleteHandler(event)">
<fx:Metadata>
<![CDATA[
[Event(name="loggedIn", type="org.icodeapps.filters.components.events.LoginPanelEvent")]
[Event(name="loggedOut", type="org.icodeapps.filters.components.events.LoginPanelEvent")]
]]>
</fx:Metadata>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import org.icodeapps.filters.components.events.LoginPanelEvent;
private function creationCompleteHandler(event:FlexEvent):void
{
dispatchEvent(new LoginPanelEvent(LoginPanelEvent.LOGGED_IN));
}
]]>
</fx:Script>
</s:Panel> Code: <?xml version="1.0"?>
<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="org.icodeapps.filters.components.*">
<fx:Script>
<![CDATA[
import org.icodeapps.filters.components.events.LoginPanelEvent;
//---------------------------------------------------------------------
//
// Event Handler
//
//---------------------------------------------------------------------
private function loginPanel_loggedInHandler(event:LoginPanelEvent):void
{
trace('.loginPanel_loggedInHandler');
}
private function loginPanel_loggedOutHandler(event:LoginPanelEvent):void
{
trace('.loginPanel_loggedOutHandler');
}
]]>
</fx:Script>
<components:LoginPanel id="loginPanel" loggedIn="loginPanel_loggedInHandler(event)"
loggedOut="loginPanel_loggedOutHandler(event)" />
</s:Group> |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2011
Beiträge: 2
|
Sorry für die späte Antwort - ich hatte die Antwort gleich gelesen aber bis jetzt noch keine Zeit gehabt es auszuprobieren. Und das Resultat: Es funktioniert nun und ich denke ich kann damit arbeiten - vielen vielen Dank |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| currenState ausserhalb der MXML ändern | neridox | Flex programmieren | 1 | 24-05-2011 09:50 |
| simpleButton ändern der states | rocknroad | ActionScript 3 | 1 | 16-12-2009 19:25 |
| Instanziierungsreihenfolge von Objekten innerhalb einer MXML Datei | k4simir | Flex programmieren | 9 | 02-04-2009 16:23 |
| Kann ein mxml Modul von einer Klasse erben? | ullim | Flex programmieren | 12 | 18-11-2008 08:57 |
| Random festgelegt? | Yenig | Flash MX 2004 | 3 | 24-03-2005 21:43 |