Buondì...
Stò tentando di fondere questo esempio con l'utility MacMenù...cercando di capire le logiche di AS3...dovrei esserci quasi ma mi manca un punto...ovviamente il più importante...nella funzione CambiaSezione nell'assegnazione
id = m.target.parent.id+1;
id mi rimane sempre a 0 forzando un id diverso il tutto funziona correttamente quindi presumo che il problema si nel passaggio dell'evento (la cui logica non mi è del tutto chiara)
vorrei capire se è un problema di script o di oggetti utilizzati nel fla, la differenza stà nel fatto che in questo esempio vengono utilizzati dei pulsanti mentre nel mio esempio delle bitmap
Spero che qualcuno mi illumini...allego lo script
Buona Giornata
Daniele
/*
*************************************
* Flash Mac Menu
*
Flash CS3 Blog con Tutorial e risorse per Flash cs3 e Actionscript 3.0
* Author: Filippo Lughi
* version 1.0
*************************************
*/
package org.FlepStudio{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.net.URLRequest;
public class Main extends MovieClip {
private var border:int=2;
private var min:int=32;
private var max:int=92;
private var unit:Number;
private var outdistancing:Number;
private var speed:Number=0.15;
private var _V :Number;
private var now:Number=0;
private var pUnit:Number;
private var center:Array=new Array();
private var icons_array:Array;
private var url_array:Array;
private var weath:Boolean=true;
private var into:Boolean=true;
private var xx:Number=0;
private var yy:Number=0;
private var loader:Loader;
private var swf:String;
private var id:int=0;
public function Main() {
addEventListener(Event.ADDED_TO_STAGE,init);
}
private function init(evt:Event):void {
removeEventListener(Event.ADDED_TO_STAGE,init);
stop();
stage.frameRate=31;
url_array=new Array('sezioni/home.swf',
'sezioni/sezione1.swf',
'sezioni/sezione2.swf',
'sezioni/sezione3.swf',
'sezioni/sezione4.swf',
'sezioni/sezione5.swf',
'sezioni/sezione6.swf',
'sezioni/sezione7.swf',
'sezioni/sezione8.swf',
'sezioni/sezione9.swf');
icons_array=new Array(menu_mc.sezione_1_mc,
menu_mc.sezione_2_mc,
menu_mc.sezione_3_mc,
menu_mc.sezione_4_mc,
menu_mc.sezione_5_mc,
menu_mc.sezione_6_mc,
menu_mc.sezione_7_mc,
menu_mc.sezione_8_mc,
menu_mc.sezione_9_mc,
menu_mc.sezione_10_mc);
unit=2.5*min;
outdistancing=min+1;
_V=max - min;
pUnit=Math.PI/unit;
for (var i:int=0; i < icons_array.length; i++) {
icons_array[i].y=-border;
center[i]=(2*i-icons_array.length-1)*outdistancing/2;
icons_array[i].mouseChildren=false;
icons_array[i].buttonMode=true;
icons_array[i].id=i;
}
menu_mc.tray.height=min+2*border;
menu_mc.addEventListener(Event.ENTER_FRAME,moveMen u);
caricaHome();
aggiungiListenerMenu();
}
private function moveMenu(evt:Event):void {
var low:Number;
var high:Number;
var elevation:Number=min+2*border+_V*now;
var _X:Number;
var _F:Number;
var c_F:Number;
var s_F:Number;
var _S:Number;
var _Vcale:Number;
if (now==0||now==1) {
weath=false;
} else {
weath=true;
}
if (into) {
now=Math.min(1,now+0.2);
} else {
now=Math.max(0,now-0.2);
}
if (xx!=mouseX||yy!=mouseY||weath) {
xx=menu_mc.mouseX;
yy=menu_mc.mouseY;
var xx1=menu_mc.tray.x;
var xx2 =xx1+menu_mc.tray.width;
}
if (!weath) {
if (xx
xx2||Math.abs(yy)>elevation) {
into=false;
} else {
into=true;
}
}
for (var i:int=0; i < icons_array.length; i++) {
low=center[i]-now*unit+50;
high=center[i]+now*unit+50;
if (xx<=low) {
_X=high;
}
if (xx>=high) {
_X=low;
}
if (xx>low&&xx _F=pUnit*(high-xx);
c_F=Math.cos(_F/2);
s_F=Math.sin(_F)/20;
_X=center[i]-now*unit*(c_F+s_F)+50;
_S=_V*(1-c_F*c_F);
} else {
_S=0;
}
_Vcale=(min+now*_S)/128;
icons_array[i].scaleX=icons_array[i].scaleY=_Vcale;
icons_array[i].x=_X;
menu_mc.tray.width=icons_array[icons_array.length-1].x-icons_array[0].x+icons_array[0].width/2+icons_array[icons_array.length-1].width/2+2*border;
menu_mc.tray.x=(icons_array[0].x-icons_array[0].width/2-border);
}
}
private function aggiungiListenerMenu():void {
for (var i:int=0; i < icons_array.length; i++) {
icons_array[i].id=i;
icons_array[i].addEventListener(MouseEvent.MOUSE_DOWN,moveNested Clip);
}
}
private function entra(m:MouseEvent):void {
this.gotoAndStop(2);
caricaHome();
}
private function tornaHome(m:MouseEvent):void {
id=0;
loader.unload();
removeChild(loader);
rimuoviListeners(loader.contentLoaderInfo);
caricaHome();
}
private function caricaHome():void {
swf=url_array[0];
var request:URLRequest=new URLRequest(swf);
loader=new Loader();
initListeners(loader.contentLoaderInfo);
loader.load(request);
id=0;
}
private function moveNestedClip(m:MouseEvent):void {
var loadedSWF:MovieClip=loader.content as MovieClip;
var nested_clip:MovieClip=loadedSWF.benvenuti_mc as MovieClip;
nested_clip.gotoAndPlay(32);
nested_clip.addEventListener(Event.ENTER_FRAME,mov eMyTimeLine);
function moveMyTimeLine(evt:Event):void {
if (evt.currentTarget.currentFrame==62) {
evt.currentTarget.stop();
evt.currentTarget.removeEventListener(Event.ENTER_ FRAME,moveMyTimeLine);
cambiaSezione(m);
}
}
}
private function cambiaSezione(m:MouseEvent):void {
id = m.target.parent.id+1;
trace( id );
loader.unload();
removeChild(loader);
rimuoviListeners(loader.contentLoaderInfo);
caricaSezione(m.target.parent.id+1);
}
private function caricaSezione(n:int):void {
swf=url_array[id];
var request:URLRequest=new URLRequest(swf);
loader=new Loader();
initListeners(loader.contentLoaderInfo);
loader.load(request);
}
private function initListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.OPEN,inizia);
dispatcher.addEventListener(ProgressEvent.PROGRESS ,inCaricamento);
dispatcher.addEventListener(Event.COMPLETE,complet ato);
}
private function rimuoviListeners(dispatcher:IEventDispatcher):void {
dispatcher.removeEventListener(Event.OPEN,inizia);
dispatcher.removeEventListener(ProgressEvent.PROGR ESS,inCaricamento);
dispatcher.removeEventListener(Event.COMPLETE,comp letato);
}
private function inizia(event:Event):void {
menu_mc.visible=false;
}
private function inCaricamento(event:ProgressEvent):void {
var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
}
private function completato(event:Event):void {
addChild(loader);
swappa();
menu_mc.visible=true;
}
private function swappa():void {
swapChildren(loader,menu_mc);
}
}
}