This is a discussion on Come firmare il proprio SWF within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Salve a tutti !
Avete presente che navigando per il web capita di vedere qualche SWF che al click destro del ...
Salve a tutti !
Avete presente che navigando per il web capita di vedere qualche SWF che al click destro del mouse non appare il menu classico del Flash Player ?
In alcuni casi appare una scritta ( tipo una firma ) dello sviluppatore dell' SWF che se cliccata indirizza al suo sito.
Con questo articolo andrò a dimostrare come poterlo fare in modo da dare un tocco di professionalità in più ai vostri SWF.
Seguitemi...
Creo un FLA e lo salvo con nome ' firma.fla '.
Creo la Document Class, un file AS che salvo con nome ' Firma.as ', implementata in questo modo:
clickato();
creo una variabile di tipo stringa che contiene l' url su cui voglio indirizzare l' utente
var url:String='http://www.flepstudio.org/';
istanzio la classe URLRequest alla quale passo il valore della variabile url
var request:URLRequest=new URLRequest(url);
dico a Flash di reindirizzare il browser ( tramite la classe navigateToURL ) all' url contenuto nella variabile url
navigateToURL(request,'_parent');
Ho un sfw che carica un numero variabile di clip. Per ogni clip stabilisco le misure, la posizione, faccio il drag and drop, ... Su ogni clip inserita posso attivare una voce "elimina" nel contextMenu per rimuovere la clip su cui si clicca. Come faccio?
Supponiamo che sullo stage hai una MC con nome istanza clip_mc, ecco come fare:
Code:
package
{
import flash.display.MovieClip;
import flash.events.ContextMenuEvent;
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.net.navigateToURL;
import flash.net.URLRequest;
public class Firma extends MovieClip
{
public function Firma()
{
initMenu();
}
public function initMenu():void
{
var etichetta:String='rimuovi la MovieClip';
var cm:ContextMenu=new ContextMenu();
var item:ContextMenuItem=new ContextMenuItem(etichetta);
cm.hideBuiltInItems();
cm.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,clickato);
this.contextMenu=cm;
}
private function clickato(event:ContextMenuEvent):void
{
removeChild(clip_mc);
}
}
}
In effetti avevo sbagliato ad assegnare il menu. Il procedimento che funziona è assegnare il menu personalizzato al swf chiamante.
La funzione di eliminazione, però, è stata inserita nel swf chiamato.
Sai cosa non mi funziona il getChildIndex(event.MouseTarget). Mi da valori tipo 25, 15 quando invece ho al massimo 3 clip. In questo caso devo fare
setChildIndex(event.mouseTarget, numClips); nel chiamante
e poi removeChildAt(numClips) nel chiamato.
Funziona ma...troppa grazia Sant'Antonio. Se clicco fuori dalla clip che voglio eliminare, ne elimina quella con id più alto. Che tipo di controllo posso fare?