I try to make a borderSkin which has a button that controls the its parent 
visiable.
I use parentApplication.dispatch(a event) but it doesn't work. There is 
somewhere wrong in my code or my train of thought ?
 
This is my code:
 
CSS file
 
Panel
{
 background-color: #3e3e3e;
 border-color: #22201e;
 header-height:60;
 border-alpha: 1;
 corner-radius: 10;
 dropShadowStyleName: panelDropShadow;
 border-skin: ClassReference("assets.skins.myPanelSkin");
 dropShadowEnabled: false;
 title-style-name: headerStyle;
 headerSkin: ClassReference("assets.skins.HeaderSkin");
}
panelDropShadow
{
 distance:5;
 size:28;
 alpha:0.7;
}
headerStyle
{
 text-align:center;
 font-size: 15;
 fontFamily:"Century Gothic";
 border-skin: Embed(source='assets/images/header_bg.png', scaleGridLeft=20, 
scaleGridRight=200, scaleGridTop=40,scaleGridBottom=42);
}

myPanelSkin.as
 
 public class myPanelSkin extends PanelSkin
 { 
  private var backgroundComplete:Boolean;
  
  public function myPanelSkin()
  {
   super();
  }
  override mx_internal function drawBackground(w:Number, h:Number):void
      {
       super.drawBackground(w,h);
       if(!parent || backgroundComplete) return;
       
       backgroundComplete = true; 
       var headerSkin:Class = getStyle("headerSkin");
       if(headerSkin && parent is Panel)
       {
        var headerInstance:DisplayObject = new headerSkin();
        //if(headerInstance is IStyleClient) 
IStyleClient(headerInstance).styleName = parent;
        headerInstance.width = w;
        headerInstance.height = getStyle("headerHeight");
        var panel:Panel = Panel(parent);
        panel.rawChildren.addChildAt(headerInstance,2);
       }
      }
 }

HeaderSkin.mxml
 
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"; width="100%" height="60" 
styleName="headerStyle">
 <mx:Script>
  <![CDATA[
   private function biggerHandler(e:MouseEvent):void
   {
//parentApplication.dispatchEvent(new biggerEvent(biggerEvent.BIGGER_EVENT));
//parent.dispatchEvent(new biggerEvent(biggerEvent.BIGGER_EVENT));
   parentDocument.dispatchEvent(new biggerEvent(biggerEvent.BIGGER_EVENT));
   }
  ]]>
 </mx:Script>
 <mx:Image source="@Embed(source='assets/images/panel_dec_right.png')" 
right="0"/>
 <mx:Image source="@Embed(source='assets/images/panel_dec_left.png')" left="0"/>
 <mx:Button id="bigger" label="Big" click="biggerHandler(event)" right="0"/>
</mx:Canvas>

Reply via email to