Aide - Recherche - Membres - Calendrier
Version complète : Menu Flashplayer 10 en AS3
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 3
zoam
Bonjour,

Après recherche dans cet excellent forum, je me demandais si quelqu'un avait eu la bonté de penser au développement du menu au sein de FP10.

En AS2 je faisais :

Action Script

function doSomething(){
//getURL("http://www.google.com", "_blank");
}
function doSomething1(){
//getURL("http://www.google.fr", "_blank");
}
MENU.customItems.push(Functioned);
MENU = new ContextMenu();
MENU.hideBuiltInItems();
Functioned = new ContextMenuItem("GOOGLE international.", doSomething);
Functioned1 = new ContextMenuItem("GOOGLE France", doSomething1);
MENU.customItems.push(Functioned);
MENU.customItems.push(Functioned1);
_root.menu = MENU;


Quel serait l'équivalent en AS3 ?

Bien merci aux curieux soucieux de ce problème.
G.
salut,

je crois que c'est sensiblement la même chose sous AS3 et sans l'horrible _root bien entendu (fut un temps où un certain animal marin t'aurais pété les genoux ...) bref vérifie dans la doc mais ça n'a pas trop changé
ActionFlash
L'idéal serait d'en faire une classe.
Tu peux aussi afficher le site en plein écran et utiliser une méthode pour copier une url.
Tout cela avec le click droit. Je travaille la dessus.
zoam
Ok, voici ma classe après quelques recherches dans la doc:

Action Script


package {
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.ui.ContextMenuBuiltInItems;
import flash.events.ContextMenuEvent;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.TextField;
import flash.display.*;
import flash.net.navigateToURL;
import flash.net.URLRequest;


public class ContextExternMenu extends Sprite {
private var myContextMenu:ContextMenu;
private var showDefaultContextMenu:Boolean;
private var menuLabel1:String = "GOOGLE Internationnal";
private var menuLabel2:String = "GOOGLE FRANCE";

public function ContextExternMenu() {
this.showDefaultContextMenu = false;
myContextMenu = new ContextMenu();
removeDefaultItems();
addCustomMenuItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);


this.contextMenu = myContextMenu;
}

private function removeDefaultItems():void {
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = true;
}

private function addCustomMenuItems():void {
var item1:ContextMenuItem = new ContextMenuItem(menuLabel1);
var item2:ContextMenuItem = new ContextMenuItem(menuLabel2);
myContextMenu.customItems.push(item1);
myContextMenu.customItems.push(item2);
item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, url1);
item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, url2);
}

private function menuSelectHandler(event:ContextMenuEvent):void {
trace("menuSelectHandler: " + event);
}

private function url1(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
var requete1:URLRequest = new URLRequest ("http://www.google.com");
navigateToURL ( requete1 );
}

private function url2(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
var requete2:URLRequest = new URLRequest ("http://www.google.fr");
navigateToURL ( requete2 );
}

}
}



Libre à vous de l'adapter comme bon vous semble.
Comme il a été dit plus haut, cette classe serait utile pour un fullscreen.



Bon usage.

zoam
Mon code est bien mal tabulé ! lol
zoam
J'ai constaté que ma classe fonctionne lorsque elle est instancié dans un fla en tant que classe de document, en revanche, si je l'importe dans une autre classe de document rattaché à un autre fla, ça bug, j'ai loupé une étape icon_question.gif icon_eek.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.