. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .


 
 
SEGÉDLETEK ActionScript

Hogyan készítsünk tetszőleges Flash Player menüt
  feltöltve: 2005.04.10 | szerző: sgabe | olvasva: 16241 alkalommal

   
 

ContextMenuItem osztály

A ContextMenuItem osztály segítségével tetszőleges menüpontokat hozhatunk létre a Flash Player menüben. Minden menüpontnál meghatározhatjuk a megjelenítendő szöveget és lefuttathatunk egy függvényt, amikor a megadott menüpontot kiválasztja a felhasználó.

Az általunk létrehozott menüpontok a menü tetején jelennek meg, mindig a beépített menüpontok fölött. Egy elválasztó egyenes mindig elkülöníti a beépített és a tetszőleges menüpontokat. Legfeljebb 15 menüpontot hozhatsz létre.  A "Settings" menüpontot nem távolíthatod el, mert fontos hogy a felhasználók mindig hozzáférjenek a biztonsági és a tárolási beállításokhoz. Az "About" menüpontot sem távolíthatod el, hogy a felhasználók ellenőrizni tudják melyik Flash Player verziót használják.

Minden menüpontnak legalább 1 látható karaktert kell tartalmaznia, de egyik sem lehet hosszabb 100 karakternél. Nem lehet másokkal azonos menüpontokat létrehozni függetlenül attól, hogy az egyező menüpontok láthatóak-e vagy sem. A következő szavak egyike sem jelenhet meg egy új menüpontban: Macromedia, Flash Player, Settings.

Eljárás összefoglaló a ContextMenuItem osztályhoz
Eljárás Leírás
ContextMenuItem.copy()

Visszatér egy meghatározott menüpont másolatával.

Tulajdonság áttekintés a ContextMenuItem osztályhoz
Tulajdonság Leírás
ContextMenuItem.caption

Megjelenítendő szöveg meghatározása.

ContextMenuItem.enabled

Menüpont engedélyezése vagy tiltása.

ContextMenuItem.separatorBefore

Elválasztás a menüpont felett.

ContextMenuItem.visible Menüpont láthatósága.

Eseménykezelés a ContextMenuItem osztályhoz
Eseménykezelő Leírás
ContextMenuItem.onSelect

Lefut, amikor a menüpont aktív.

Tehát az osztály segítségével létrehozhatunk új ContextMenuItem objektumokat, melyeket hozzáadhatunk a ContextMenu.customItems tömbhöz.

A példánkban két új menüponttal és egy elválasztó egyenessel bővítjük ki a my_cm nevű ContextMenu objektumot. A swfHandler() függvény lefut, amikor az "swf.hu" menüpont aktív, a devnetHandler() lefut amikor a "devnet.hu" menüpont aktív.

var my_cm:ContextMenu = new ContextMenu();

my_cm.customItems.push(new ContextMenuItem("swf.hu", swfHandler));

my_cm.customItems.push(new ContextMenuItem("devnet.hu", devnetHandler, true));

function swfHandler(obj, item) {

   trace("swf.hu...");

}

function devnetHandler(obj, item) {

   trace("devnet.hu...");

}

this.menu = my_cm;

ContextMenuItem.copy()
A ContextMenuItem.copy() eljárás létrehoz egy másolatot az általunk meghatározott ContextMenuItem objektumból. A létrehozott másolat rendelkezik az eredeti objektum minden tulajdonságával.

Az alábbi példa létrehoz egy új ContextMenuItem objektumot original_cmi néven "swf.hu" felirattal és egy eseménykezelővel, ami lefuttatja az onCopy függvényt. Létrehozza a másolatot majd hozzákapcsolja a copy_cmi változóhoz.

var original_cmi:ContextMenuItem = new ContextMenuItem("swf.hu", onCopy);

function onCopy(obj:Object, menu:ContextMenu) {

  trace("swf.hu...");

}



var copy_cmi:ContextMenuItem = original_cmi.copy();



var my_cm:ContextMenu = new ContextMenu();

my_cm.customItems.push(original_cmi);

my_cm.customItems.push(copy_cmi);



my_mc.menu = my_cm;

ContextMenuItem.caption
A ContextMenuItem.caption tulajdonság határozza meg, hogy milyen felirat jelenjen meg a Flash Player menüben, vagyis ez lesz a menüpont neve.

A következő példa megjeleníti a kijelölt menüpont feliratát az Output panelen.

var my_cm:ContextMenu = new ContextMenu();

var menuItem_cmi:ContextMenuItem = new ContextMenuItem("swf.hu", onCaption);

my_cm.customItems.push(menuItem_cmi);

function onCaption(obj, menuItem) {

   trace("A kiválasztott menüpont: " + menuItem.caption);

}

this.menu = my_cm;

ContextMenuItem.enabled
A ContextMenuItem.enabled tulajdonság meghatározásával lehet engedélyezni illetve tiltani bizonyos menüpontokat. Alapértelmezetten engedélyezve van.

A következő példában két új menüpontot hozunk létre: "Start" és "Stop". Amikor a felhasználó a "Start" menüpontra kattint kiíródik az SWF fájl indítása óta eltelt idő milliszekundumokban. Ekkor a "Start" menüpont le van tiltva. Amikor a "Stop" menüpontra kattint a felhasználó újra kiíródik az indítás óta eltelt idő. A "Start" menüpont újra engedélyezve lesz és a "Stop" menüpont lesz letiltva.

var my_cm:ContextMenu = new ContextMenu();

var startMenuItem:ContextMenuItem = new ContextMenuItem("Start", startHandler);

startMenuItem.enabled = true;

my_cm.customItems.push(startMenuItem);

var stopMenuItem:ContextMenuItem = new ContextMenuItem("Stop", stopHandler, true);

stopMenuItem.enabled = false;

my_cm.customItems.push(stopMenuItem);

function stopHandler(obj, item) {

   trace("Leállítás... "+getTimer()+"ms");

   startMenuItem.enabled = true;

   stopMenuItem.enabled = false;

}

function startHandler(obj, item) {

   trace("Indítás... "+getTimer()+"ms");

   startMenuItem.enabled = false;

   stopMenuItem.enabled = true;

}

this.menu = my_cm;

ContextMenuItem.separatorBefore
A ContextMenuItem.separatorBefore tulajdonság segítségével megadhatjuk, hogy a meghatározott menüpont előtt legyen-e elválasztó egyenes vagy sem, így különböző csoportokat különíthetünk el a létrehozott menüpontok között. Egy elválasztó egyenes mindig van a tetszőleges és a beépített menüpontok között.

Ez a példa három menüpontot hoz létre "Megnyitás", "Mentés", és "Nyomtatás" néven. Egy elválasztó elkülöníti egymástól a "Mentés" és a "Nyomtatás" menüpontokat.

var my_cm:ContextMenu = new ContextMenu();

var open_cmi:ContextMenuItem = new ContextMenuItem("Megnyitás", itemHandler);

var save_cmi:ContextMenuItem = new ContextMenuItem("Mentés", itemHandler);

var print_cmi:ContextMenuItem = new ContextMenuItem("Nyomtatás", itemHandler);

print_cmi.separatorBefore = true;

my_cm.customItems.push(open_cmi, save_cmi, print_cmi);

function itemHandler(obj, menuItem) {

      trace("Kiválasztott menüpont: " + menuItem.caption);

};

this.menu = my_cm;

ContextMenuItem.visible
A ContextMenuItem.visible tulajdonság értéke határozza meg, hogy a megadott menüpont látható-e a Flash Player menü megjelenítésekor. Alapértelmezetten engedélyezve van.

Az alábbi példánk hasonló a ContextMenuItem.enabled tulajdonságnál látotthoz annyi különbséggel, hogy itt a meghatározott menüpontok nem csak egyszerűen le vannak tiltva, hanem egyáltalán nem láthatóak.

var my_cm:ContextMenu = new ContextMenu();

var startMenuItem:ContextMenuItem = new ContextMenuItem("Start", startHandler);

startMenuItem.visible = true;

my_cm.customItems.push(startMenuItem);

var stopMenuItem:ContextMenuItem = new ContextMenuItem("Stop", stopHandler, true);

stopMenuItem.visible = false;

my_cm.customItems.push(stopMenuItem);

function stopHandler(obj, item) {

   trace("Leállítás... "+getTimer()+"ms");

   startMenuItem.visible = true;

   stopMenuItem.visible = false;

}

function startHandler(obj, item) {

   trace("Indítás... "+getTimer()+"ms");

   startMenuItem.visible = false;

   stopMenuItem.visible = true;

}

this.menu = my_cm;

ContextMenuItem.onSelect
A ContextMenuItem.onSelect eseménykezelő akkor fut le, amikor egy meghatározott menüpontra kattint a felhasználó a Flash Player menüből. Az eseménykezelő két paramétert fogad: obj, ami megmutatja, hogy milyen objektum volt a kurzor alatt, amikor a felhasználó meghívta a menüt és az item, ami azt mutatja meg, hogy mely menüpont lett kiválasztva.

A következő példa lefuttat egy függvényt az onSelect eseménykezelő segítségével a my_cmi nevű ContextMenuItem objektumon. A függvény végül megjeleníti a kiválasztott menüpont feliratát.

var my_cmi:ContextMenu = new ContextMenu();

var start_cmi:ContextMenuItem = new ContextMenuItem("swf.hu");

start_cmi.onSelect = function(obj, item) {

   trace("A kiválasztott menüpont: "+item.caption);

};

my_cmi.customItems.push(start_cmi);

my_cmi.customItems.push(new ContextMenuItem("devnet.hu", devnetHandler, true));

function devnetHandler(obj, item) {

   trace("devnet.hu...");

}

this.menu = my_cmi;
 
   
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .