Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-11-2010, 08:49   #16 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
So viele "Blank Lines"? Ich schaue mir das nachher mal an.
Omega Psi ist offline   Mit Zitat antworten
Alt 23-11-2010, 09:24   #17 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.408
Ja+ da häuft sich bei mir gerne mal was an zwischendurch...
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 25-11-2010, 19:08   #18 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Code:
@namespace t "fs.examples.*";

t|Twitterific {
    skinClass: ClassReference("fs.examples.skins.TwitterificSkin");
}
Code:
package fs.examples
{
    import flash.events.MouseEvent;

    import mx.events.FlexEvent;
    import mx.states.State;

    import spark.components.Panel;
    import spark.components.supportClasses.SkinnableComponent;

    [SkinState("master")]

    [SkinState("detail")]

    public class Twitterific extends SkinnableComponent
    {

        //---------------------------------------------------------------------
        //
        //          Skin Parts
        //
        //---------------------------------------------------------------------

        [SkinPart(required="true")]
        public var detailPanel:Panel;

        [SkinPart(required="true")]
        public var masterPanel:Panel;

        //---------------------------------------------------------------------
        //
        //          Properties
        //
        //---------------------------------------------------------------------

        override public function set currentState(value:String):void
        {
            if (currentState === value) return;

            super.currentState = value;
            invalidateSkinState();
        }

        //---------------------------------------------------------------------
        //
        //          Constructor
        //
        //---------------------------------------------------------------------

        public function Twitterific()
        {
            addEventListener(FlexEvent.PREINITIALIZE, preinitializeHandler)
        }

        //---------------------------------------------------------------------
        //
        //          Event Handler
        //
        //---------------------------------------------------------------------

        private function panel_clickHandler(event:MouseEvent):void
        {
            const oldTarget:Panel = Panel(event.currentTarget);
            const newTarget:Panel = oldTarget == detailPanel ? masterPanel : detailPanel;

            oldTarget.removeEventListener(MouseEvent.CLICK, panel_clickHandler);
            newTarget.addEventListener(MouseEvent.CLICK, panel_clickHandler);

            currentState = currentState == "master" ? "detail" : "master";
        }

        private function preinitializeHandler(event:FlexEvent):void
        {
            states = [new State({name:"detail"}), new State({name:"master"})];
            currentState = "master";
        }

        //---------------------------------------------------------------------
        //
        //          Overridden Methods
        //
        //---------------------------------------------------------------------

        override protected function getCurrentSkinState():String
        {
            return currentState;
        }

        override protected function partAdded(partName:String, instance:Object):void
        {
            super.partAdded(partName, instance);

            if (instance == detailPanel)
            {
                detailPanel.title = "Detail";
            }

            if (instance == masterPanel)
            {
                masterPanel.addEventListener(MouseEvent.CLICK, panel_clickHandler);
                masterPanel.title = "Master";
            }
        }

        override protected function partRemoved(partName:String, instance:Object):void
        {
            super.partRemoved(partName, instance);

            if (instance == detailPanel || instance == masterPanel)
            {
                const panel:Panel = currentState == "master" ? masterPanel : detailPanel;
                panel.removeEventListener(MouseEvent.CLICK, panel_clickHandler);
            }
        }
    }
}
Code:
<?xml version="1.0"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
    <fx:Script>
        <![CDATA[
        import mx.graphics.SolidColor;

        protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            contentGroup.columnWidth = unscaledWidth;
        }
        ]]>
    </fx:Script>

    <s:states>
        <s:State name="master"/>
        <s:State name="detail"/>
    </s:states>

    <s:transitions>
        <s:Transition fromState="master" toState="detail">
            <s:Move target="{contentGroup}"/>
        </s:Transition>
        <s:Transition fromState="detail" toState="master">
            <s:Move target="{contentGroup}"/>
        </s:Transition>
    </s:transitions>

    <s:Group id="contents" bottom="0" clipAndEnableScrolling="true" left="0" right="0" top="0">
        <s:HGroup id="contentGroup" bottom="0" gap="0" top="0" variableColumnWidth="false" verticalAlign="justify"
                  x.detail="{-width}">
            <s:Panel id="masterPanel"/>
            <s:Panel id="detailPanel"/>
        </s:HGroup>
    </s:Group>
</s:SparkSkin>
So als Beispiel...

Geändert von Omega Psi (26-11-2010 um 13:01 Uhr)
Omega Psi ist offline   Mit Zitat antworten
Alt 30-11-2010, 10:42   #19 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.408
Kannst Du dazu noch 2-3 erklärende Sätze schreiben? SIeht sehr interessant aus, aber ic verstehe nicht zu 100% den Zusammenhang. ;/
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 30-11-2010, 10:48   #20 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Das ist eine einfache SkinnableComponent, die zwei Panels aggregiert. Es gibt ein Panel, dass den Master View darstellt (die Liste bei dir) und ein Detail Panel...

Sollte nur eine fixe Beispiel-Implementierung sein...
Omega Psi ist offline   Mit Zitat antworten
Alt 30-11-2010, 11:36   #21 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.408
Alles klar - danke dafür. Wieder was gelernt, auch wenn ich es jetzt, layoutmäßig, wohl anders umsetzen werde. (Meine erste Idee war eher Benutzerunfreundlich in der Praxis^^)
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. 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
Gescheite Vorgehensweise? renedh ActionScript 3 6 07-07-2008 18:39
360° View goodfella Flash Einsteiger 1 27-05-2008 16:06
MVC Problem - View sol View erzeugen compuboy1010 ActionScript 2 0 30-10-2006 12:51
vorgehensweise SirC0 Flash MX 2 02-01-2005 14:45
first view komashooter Flash MX 2 22-04-2002 21:33


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

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


Copyright ©1999 – 2012 Marc Thiele