View Single Post

  #101 (permalink)  
Old 10-07-08, 12:41
dadoge dadoge is offline
Member
 
Join Date: Jul 2008
Posts: 30
Rep Power: 0
dadoge is on a distinguished road
Re: Creare un sito caricando SWF esterni con Flash CS3

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

Code:
/*
*************************************
* 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,moveMenu);
 
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 (xxxx2||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,moveNestedClip);
}
}
 
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,moveMyTimeLine);
 
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,completato);
}
private function rimuoviListeners(dispatcher:IEventDispatcher):void {
dispatcher.removeEventListener(Event.OPEN,inizia);
dispatcher.removeEventListener(ProgressEvent.PROGRESS,inCaricamento);
dispatcher.removeEventListener(Event.COMPLETE,completato);
}
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);
 
}
}
}

Last edited by Flep; 06-12-08 at 10:04.. Reason: aggiunto il tag CODE
Reply With Quote