freed102 Arayashiki | Zedlefou a écrit :
D'ou l'interet du typage.
Si tu avais ecris ta fonction ainsi :
function maFonction(arg1:String, arg2:String, callBack:Function){
Il t'aurai renvoyé (dans les dents) "Type mismatch."
Dans les arguments que tu donnes, le dernier est une chaine alors que ca devrait etre ta fonction. Donc t'enleves les guillemets et c'est bon ...
|
voila je déterre ce topic, car je suis confronté à un autre souci... je m'explique :
dans mon XML j'ai ça :
Code :
- <fieldset group="">
- <field type="select" name="nb_enfants" value="<?= $_SESSION['recherche_vacances']['nb_enfants'] ?>" default="" width="55" height="200" callback="selectChildren" >
- <option value="1" alt=""><![CDATA[1]]></option>
- <option value="2" alt=""><![CDATA[2]]></option>
- <option value="3" alt=""><![CDATA[3]]></option>
- <option value="4" alt=""><![CDATA[4]]></option>
- <option value="5" alt=""><![CDATA[5]]></option>
- <option value="6" alt=""><![CDATA[6]]></option>
- <option value="7" alt=""><![CDATA[7]]></option>
- <option value="8" alt=""><![CDATA[8]]></option>
- <option value="9" alt=""><![CDATA[9]]></option>
- <option value="10" alt=""><![CDATA[10]]></option>
- <option value="11" alt=""><![CDATA[+10]]></option>
- </field>
- </fieldset>
|
dans mon AS2 j'ai fait ça :
(parser mon XML )
Code :
- for(i=0;i<configNodes.length;i++){
- var nodes=configNodes[i].firstChild
- trace("name : "+nodes.attributes.name+" type : "+nodes.attributes.type);
- if(nodes.attributes.type=="select" ){
- var values:Array=new Array();
- var libelle:Array=new Array();
- var alt:Array=new Array();
- var value=nodes.attributes.value;
- var object:MovieClip=_root[nodes.attributes.name];
- var width:Number=nodes.attributes.width;
- var height:Number=nodes.attributes.height;
- var fieldsNode=nodes.childNodes;
- var callBack:Function=nodes.attributes.callback;
- trace("callBack : "+callBack)
- for(n=0;n<fieldsNode.length;n++){
- values.push(fieldsNode[n].attributes.value);
- alt.push(fieldsNode[n].attributes.alt);
- libelle.push(fieldsNode[n].firstChild.nodeValue);
- }
- createSelect(object,libelle,values,"Choisissez...",value,'',width,height,alt,callBack);
- }
|
fonction :
Code :
- function createSelect(mc:MovieClip, libelle:Array, values:Array, emptyValue:String, defaultValue:String, selectedValue:String, width:Number, height:Number,infos:Array,callBack:Function) {
- [...]
- callBack(this.value.length);
- trace("callback ? =>"+callBack);
- [...]
- }
- function selectChildren(lenght){
- trace(toto);
- }
|
Donc voila.. ça ne marche pas.. pourtant mon trace("callback ? =>"+callBack) me retourne bien "callback ? => selectChildren" mais la fonction selectChildren n'est pas executée... sauf si je le mets à la main sans guillemets comme ça :
createSelect(object,libelle,values,"Choisissez...",value,'',width,height,alt,selectChildren);
Que faire ?
PS : je viens d'essayer de mettre dans mon XML callback="asfunction:selectChildren" ... mais ça ne marche pas
Freed Message édité par freed102 le 12-02-2009 à 16:18:48
|