Flash right click

Poštovanje.
Imam jedno pitanjce.
Kako napraviti fleš verziju ovog right clicka za e-mail?
http://www.eventi.hr/?page_id=28
Tnx

ukratko, putem “mailto” u ActionScriptu (dodat action buttonu ili linku):

on(release)
{
getURL("mailto:[email protected]");
}

ili

[TUTORIAL: step by step]

http://www.flepstudio.org/forum/tutorials/1565-mailto-method.html

… ako kaj treba pojasniti slobodno javi

Tnx ali uz to meni treba i da mogu s mišem doći na e-mail adresu i da mi se na desni klik otvori meni koji će kopirati e-mail adresu tako da se ona može zalijepiti u bilo koji dokument. Kao na linku koji sam posto.

aha…ok, znaći treba ti ActionScript Context Menu
tj custom Context Menu, za razliku od defaultnog (Zoom In, Zoom Out… Global Settings, About Flash Player…)

Najjednostavnija varijanta glasila bi ovako:

Također sam priložio gotovi project, sa sourceom(.fla - Flash Pro CS3, swf).
(nabrzinu sam ga napravio, toliko da skužiš fukcionalnost)

//ovako, prvo napravi novi ContextMenu iliti "RightClick on flash menu"
var menu = new ContextMenu();

//ukoliko želiš maknuti defaultne ContextMenu items (osim GlobalSetting/About)
menu.hideBuiltInItems(); 

//napravi prvi meni
var mojMenu1:ContextMenuItem = new ContextMenuItem("Kopiraj [email protected]");

//napravi drugi meni
var mojMenu2:ContextMenuItem = new ContextMenuItem("Ovo je drugi menu");

//ako želiš seperator između mojMenu1 | mojMenu2
mojMenu2.separatorBefore = true

//dodaj ContextMenuItems u ContextMenu(Array)
menu.customItems.push(mojMenu1, mojMenu2)

//dodaj EventListener //znaći na klik kopiraj text
mojMenu1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function()
{
//dodaj string "email adresa" tj koji email želiš kopirati
System.setClipboard("[email protected]")

});

//dodao sam ContextMenu u sam stage, a može biti Label,Button...bilo koja UIcomponent.a
// trebao bi dodjeliti Labelu ime te umjesto this.contextMenu stavit njgovoIme.contextMenu
this.contextMenu = menu; 

Nadam se da sam ti pomogao :cp:
Ukoliko znash osnove ActionScripta moci ces sa ovim kodom napravti što si zamislio, kôd sam testirao prije postanja.

Za primjere i detaljnije tutoriale googlaj “AS3 custom Context Menu”, imash toga na tone…

Adobe službena dokumentacija
[AS3 ContextMenu]

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/ui/ContextMenu.html

[Clipboarding]

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/Clipboard.html#setData()

napomena!, nisam stigao proučiti dali clipboarding radi jednako na Linux, a na MacOSX bi trebalo biti problema…
… također AIR ima drugačiji pristup što se tiće clipboardinga
…još se mogu dodati submenui, UIkontrole . al sumljam da je ovo potrebno u ovom slučaju

Puno hvala dobri čovječe! :zhuja:

Kako mogu napraviti da mi se taj izbornik otvara samo na određenoj površini a ne na cjeloj stranici?

Salut,

kolega Enloz je sve lijepo objasnio, pa cu ponoviti vecim dijelom njegov kod!
Dakle, kad trebas “glavni” meni onda ce ovo upaliti:


var glavniMenu = new ContextMenu();

glavniMenu.hideBuiltInItems();

var glavniMenu1:ContextMenuItem = new ContextMenuItem(“Ovo je 1. opcija glavnog menija”);
var glavniMenu2:ContextMenuItem = new ContextMenuItem(“Ovo je 2. opcija glavnog menija”, true);

glavniMenu.customItems.push(glavniMenu1, glavniMenu2)

glavniMenu1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, funkcijaPrva);
glavniMenu2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, funkcijaDruga);

this.contextMenu = glavniMenu;

Kad trebas meni na nekom MC-u ili Botunu ili vec necemu tome slicno, mozes ponovit kostur gornjeg koda, samo na kraju umjesto this.contextMenu = glavniMenu; stavi
this.Play_btn.contextMenu = glavniMenu;

uz pretpostavku da imas Botun nazvan sa Play_btn!!

Pozz

P.S.
Kad sam napisao da …mozes ponoviti kostur gornjeg koda… razumijevao sam da taj kostur koristis za svoj drugi meni, koji nije isti kao “glavni”.
Nadalje, moram se jos ispraviti u krajnjem dijelu posta, tj. tamo gdje sam napisao this.Play_btn.contextMenu = glavniMenu;

treba pisati this.Play_btn.contextMenu = mojDrugiMenu;

Pozz,

Sheriff