Looks like the style code may not be loading correctly.  What happens if
you use an MXML file for your application instead of AS?

 

Matt

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of bookymcnuggett
Sent: Thursday, November 16, 2006 5:49 PM
To: [email protected]
Subject: [flexcoders] Newbie: Why can't I add a button!

 

Hi All,

This is my first posting to this forum.

I have taken my first newbie steps to creating a stand-alone AS3 
Application and have come across something I cannot understand. I 
have an Application, and add an Image to it and it is fine. I add a 
Button to it and it blows up with the AS3 equivalent of a null 
pointer exception. The code is below. The error is below that. If I 
comment out the line that does the "addChild(button)" it correctly 
adds and displays the Image. What am I doing wrong? What is wrong 
with how I am adding a button? Both Button and Image descend from 
UIComponent.

package {

import mx.core.*;
import mx.events.*;
import mx.skins.halo.*;
import mx.styles.*;
import mx.controls.*;
import flash.display.*;

public class FirstApp extends Application
{
[Embed(source="connected_multiple_big.jpg")]
private var ImageClass:Class;

public function FirstApp()
{
super();
this.layout = "vertical";
this.setStyle("borderSkin",mx.skins.halo.HaloBorder);
this.addEventListener(FlexEvent.APPLICATION_COMPLETE, doInit); 
}

private function doInit(e:FlexEvent):void {
var img:Image = new Image();
img.setStyle("verticalAlign","top");
img.source = ImageClass; 
addChild(img);

// the troublesome test button. addChild() here causes a null object 
reference exception
var button:Button = new Button();
button.label = "label";
addChild(button); 

}
}
}
/// ****************************

TypeError: Error #1009: Cannot access a property or method of a null 
object reference.
at mx.core::UIComponent/getStyle()
at 
mx.controls::Button/http://www.adobe.com/2006/flex/mx/internal::viewS
<http://www.adobe.com/2006/flex/mx/internal::viewS> 
kinForPhase()
at 
mx.controls::Button/http://www.adobe.com/2006/flex/mx/internal::viewS
<http://www.adobe.com/2006/flex/mx/internal::viewS> 
kin()
at mx.controls::Button/mx.controls:Button::commitProperties()
at mx.core::UIComponent/validateProperties()
at mx.managers::LayoutManager/::validateProperties()
at mx.managers::LayoutManager/::doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply
<http://adobe.com/AS3/2006/builtin::apply> ()
at mx.core::UIComponent/::callLaterDispatcher2()
at mx.core::UIComponent/::callLaterDispatcher()
at 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
ventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.managers::SystemManager/::preloader_preloaderDoneHandler()
at 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
ventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/::displayClassCompleteHandler()
at 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
ventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::DownloadProgressBar/::timerHandler()
at mx.preloaders::DownloadProgressBar/::initCompleteHandler()
at 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
ventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/::dispatchAppEndEvent()
at mx.preloaders::Preloader/::appCreationCompleteHandler()
at 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
ventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/set initialized()
at mx.managers::LayoutManager/::doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply
<http://adobe.com/AS3/2006/builtin::apply> ()
at mx.core::UIComponent/::callLaterDispatcher2()
at mx.core::UIComponent/::callLaterDispatcher()

 

Reply via email to