Problème actionScript 3 programation page contact

cs_lovis Messages postés 5 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 mai 2012 - 21 mai 2012 à 14:33
cs_lovis Messages postés 5 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 mai 2012 - 24 mai 2012 à 09:30
Bonjour,
Je suis en ce moment en train de créer un site en full flash et j'ai un gros problème que je n'arrive pas à régler depuis 1 semaine.
Je vous envoie donc ma page ContentPage.as et Contact.as:
Contact.as
package fr.odin.content
{
import com.greensock.TweenMax;

import flash.display.DisplayObject;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
import flash.text.TextField;
import flash.utils.Dictionary;

public class Contact extends ContentPage
{
public var sendBtn:SimpleButton;
public var formPrenom:TextField;
public var formNom:TextField;
public var formAdresse:TextField;
public var formVille:TextField;
public var formCodePostal:TextField;
public var formPays:TextField;
public var formTelephone:TextField;
public var formEmail:TextField;
public var formMessage:TextField;
private var defaultContent:Dictionary;

public function Contact()
{
super();
}
// Le problème est liée à cet override ci-dessous


override protected function init():void
{
defaultContent = new Dictionary();

var d:DisplayObject;
var t:TextField;
var n:int = numChildren;
while( n-- )
{
d = getChildAt(n);
if ( d is TextField )
{
t = TextField( d );
t.embedFonts = true;
defaultContent[t] = t.text;

}
}
sendBtn.addEventListener( MouseEvent.CLICK, onSend );
super.init();
}

private function onSend( event:MouseEvent = null ):void
{
if ( 1 )
{
//envoyer les données

var vars:URLVariables = new URLVariables();
vars.nom = formNom.text;
vars.prenom = formPrenom.text;
vars.adresse = formAdresse.text;
vars.cp = formCodePostal.text;
vars.ville = formVille.text;
vars.pays = formPays.text;
vars.telephone = formTelephone.text;
vars.email = formEmail.text;
vars.message = formMessage.text;
var req:URLRequest = new URLRequest( 'http://odin.netau.net/envoimail.php');
req.method = URLRequestMethod.POST;
req.data = vars;

var sender:URLLoader = new URLLoader();
sender.load( req );

//fermer le formulaire
sendBtn.removeEventListener( MouseEvent.CLICK, onSend );
formPrenom. text = 'Envoyer !' ;
formNom.text = 'Envoyer !';
formAdresse.text = 'Envoyer !';
formVille.text = 'Envoyer !';
formPays.text = 'Envoyer !';
formCodePostal.text = 'Envoyer !';
formEmail.text = 'Envoyer !';
formTelephone.text = 'Envoyer !';
formMessage.text = 'Merci pour votre message. Nous vous repondrons dans les plus brefs délais.';
TweenMax.to( sendBtn, .6, { autoAlpha: 0} );
}
}

}
}

ContentPage.as:
package fr.odin.content
{
import flash.display.MovieClip;
import com.greensock.TweenMax;

public class ContentPage extends MovieClip
{
private var _isInit:Boolean;

public function ContentPage()
{
_isInit = false;
visible = false;
alpha = 0;
super();
}

protected function init():void
{
_isInit = true;
}

public function show():void
{
if ( !_isInit )
{
init();
}

TweenMax.to( this, .45, { autoAlpha: 1} );
}
public function hide():void
{
TweenMax.to( this, .25, { autoAlpha: 0} );
}

}
}


Voila les erreurs qui apparraissent sous flash lors de la compilation et de la lecture sous flash:
Sortie:
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at fr.odin.content::Contact/init()
at fr.odin.content::ContentPage/show()
at fr.odin::Site/onMenuChange()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fr.odin.menu::Menu/selectItem()
at fr.odin.menu::Menu/onClick()

Normalement il n'y a aucun problème au niveau des pages Menu.as ou Site.as mais je vous ajoute les codes tout de même:
Menu.as:
package fr.odin.menu
{
import SWFAddress;

import com.greensock.TweenMax;
import com.greensock.easing.Quad;

import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;


[Event(name="menuChange", type="fr.odin.menu.MenuEvent")]

public class Menu extends MovieClip
{
public var menuMask:MovieClip;
public var menuTexture:MovieClip;

private var xmlLoader:URLLoader;
private var xmlData:XML;
//private var menuItems:Array;
private var currentItem:MenuItem;

public function Menu()
{
init();
}

private function init():void
{
menuTexture.mask= menuMask;

xmlLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoadComplete);
xmlLoader.load( new URLRequest( 'data/xml/menu.xml' ) );

}

private function onXMLLoadComplete( event:Event = null ):void
{
xmlData = new XML( xmlLoader.data );
var items:XMLList = xmlData.item;
var n:int = items.length();
var mi:MenuItem;
while ( n--)
{
mi = new MenuItem( items[n] );
mi.y = n * MenuItem.ITEM_HEIGHT;
addChild( mi );
}
addEventListener( MouseEvent.CLICK, onClick );

var path:String = SWFAddress.getPath();
if ( path.length < 2 )
{
selectID( items[0].@uid );
}

SWFAddress.addEventListener( SWFAddressEvent.CHANGE, onSWFAddressChange );
}
private function onClick( event:MouseEvent = null):void
{
if ( event.target is MenuItem && currentItem != event.target )
{

selectItem( MenuItem( event.target ) );
SWFAddress.setValue( currentItem.id );

}
}
private function onSWFAddressChange( event:SWFAddressEvent ):void
{
if ( event.pathNames.length )
{
var nid:String = event.pathNames[0];

if (!currentItem || currentItem.id != nid )
{
selectID( nid );
}
}
}

private function selectID( nid:String ):void
{
var d:DisplayObject;
var n:int = numChildren;
while ( n-- )
{
d = getChildAt( n );
if ( d is MenuItem && MenuItem(d).id == nid )
{
selectItem( MenuItem(d) );
break;
}
}
}

private function selectItem( ni:MenuItem ):void
{
if ( currentItem ) currentItem.selected = false;

currentItem = ni;
currentItem.selected = true
TweenMax.to( menuMask, .4, {y: currentItem.y - 5, ease: Quad.easeOut } );

dispatchEvent( new MenuEvent( currentItem.id ) );
}
}
}


Site.as:
package fr.odin
{
import com.greensock.TweenMax;
import com.greensock.easing.Quad;

import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.Dictionary;

import fr.odin.content.Acceuil;
import fr.odin.content.Atelier;
import fr.odin.content.Cartons;
import fr.odin.content.Catalogue;
import fr.odin.content.Contact;
import fr.odin.content.ContentPage;
import fr.odin.content.Infos;
import fr.odin.content.Photos;
import fr.odin.content.Videos;
import fr.odin.content.Webcam;
import fr.odin.menu.Menu;
import fr.odin.menu.MenuEvent;

public class Site extends MovieClip
{
public static var contentOffset:int;

public var fond2:MovieClip;
public var carton:MovieClip;
public var logo:MovieClip;
public var creation:MovieClip;
public var zig_d:MovieClip;
public var zig_g:MovieClip;
public var fond1:MovieClip;
public var etablissment:MovieClip;
public var menu:Menu;
public var zig_bas:MovieClip

private var content:Sprite;
private var contentBg:Shape;
private var contentDictionnary:Dictionary;
private var currentContent:ContentPage;

public function Site()
{
if ( stage ) init();
else addEventListener( Event.ADDED_TO_STAGE, init );

}

private function init( event:Event = null ):void
{
removeEventListener( Event.ADDED_TO_STAGE, init );

var n:int = numChildren;
var d:DisplayObject;

for( var i:int = 0; i < n; i++ )
{
d = getChildAt(i);

switch(d)
{
case menu:
TweenMax.from( d, 1, { alpha:0, delay: 2, ease: Quad.easeOut } )
break;

case fond1:

break;

case fond2:
 
break;

default:	
TweenMax.from( d, .6, { alpha:0, y: -d.height, delay: .3 * i, ease: Quad.easeOut } )
break;

}


}

contentOffset = 202;

//crée les rubriques
content = new Sprite();
content.x = contentOffset;
content.y = 128;
content.alpha = 0
addChild( content );

contentBg = new Shape();
var g:Graphics = contentBg.graphics;
g.beginFill( 0xfcf7f0, 0.3 );
g.drawRect ( 0, 0, 698, 355 );
g.endFill();
content.addChildAt( contentBg, 0 );

contentDictionnary = new Dictionary();
contentDictionnary['acceuil'] = content.addChild( new Acceuil() );
contentDictionnary['atelier'] = content.addChild( new Atelier() );
contentDictionnary['catalogue'] = content.addChild( new Catalogue() );
contentDictionnary['cartons'] = content.addChild( new Cartons() );
contentDictionnary['infos'] = content.addChild( new Infos() );
contentDictionnary['photos'] = content.addChild( new Photos() );
contentDictionnary['videos'] = content.addChild( new Videos() );
contentDictionnary['webcam'] = content.addChild( new Webcam() );
contentDictionnary['contact'] = content.addChild( new Contact() );

//écouter le menu
menu.addEventListener( MenuEvent.MENU_CHANGE, onMenuChange );

}
private function onMenuChange( event:MenuEvent ):void
{
if ( content.alpha ==0 ) TweenMax.to( content, 5, { alpha: 1} ) && TweenMax.from ( content, 3, { x: 600 } );


if ( currentContent ) currentContent.hide();

currentContent = ContentPage( contentDictionnary[event.itemID] );
currentContent.show();
}
}
}


Si vous avez besoin d'autre information dite moi je vous enverrai les fichiers complémentaires !

Merci d'avance.

1 réponse

cs_lovis Messages postés 5 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 mai 2012
24 mai 2012 à 09:30
up
0
Rejoignez-nous