daim
20.06.2011, 12:46
чето както неуспевает click сработать, стоит таймер на 100 милисекунд, он крутит карусельку(3Д которая),
и недает обработать своевременно click у Loader-а, да чего уж там, вот код:
////////////////////////////////////////////////////////////////////////////////////////////////
//это класс картинок, ага:), со слушателем CLICK
package {
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;
public class imageClass extends Loader {
public var indx:int;
public function imageClass() {
this.addEventListener(MouseEvent.CLICK,onClicked);
}
public function LoadImage(filename:String):void
{
this.load(new URLRequest(filename));
}
private function onClicked(ev:MouseEvent)
{
trace("clicked..");
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
//////////MovieClip//////////////
stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMovieFunc);
btn_1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
var pImage=new Array(30);
var Ir:int=0;
///////////////////////////
var posAnim=1.0;
var RadiusX=200;
var RadiusY=60;
var Scale=0.3;
var PosX=0;
var PosY=0;
///////////////////////////////
var myTimer:Timer=new Timer(100);
function fl_MouseClickHandler(event:MouseEvent):void
{
myTimer.addEventListener(TimerEvent.TIMER,anime);
for(var i=0;i<30;i++)
{
pImage[i]=new imageClass();
pImage[i].LoadImage("ava.gif");
addChild(pImage[i]);
pImage[i].indx=i;
pImage[i].contentLoaderInfo.addEventListener(Event.COMPLETE,compl);
}
}
///////////////////////////
var ssp=0;
var r=0;
function anime(event:Event):void
{var ScalePrev=0;
for(var i=0;i<30;i++)
{
pImage[i].x=PosX+RadiusX*Math.sin(posAnim+i*12*2*Math.PI/360);
pImage[i].y=PosY+RadiusY*Math.cos(posAnim+i*12*2*Math.PI/360);
Scale=pImage[i].y/(PosY+RadiusY);
pImage[i].content.scaleX=Scale*0.1;
pImage[i].content.scaleY=Scale*0.1;
}
//Sort the array so that the item which has the highest
//z position (= furthest away) is first in the array
var qrp=pImage.sortOn("y", Array.NUMERIC);
//Set new child indexes for the item
for (var i:uint = 0; i < pImage.length; i++) {
setChildIndex(pImage[i], i);}
posAnim+=r*0.05;
}
var sPos=0;
var tPos=0;
function compl(event:Event):void
{
var s=event.currentTarget.loader as Loader;
s.content.scaleX=0.1;
s.content.scaleY=0.1;
PosX=stage.stageWidth/2;
PosY=stage.stageHeight/2-100;
sPos=PosX+RadiusX;
tPos=PosX-RadiusX;
myTimer.start();
btn_1.visible=false;
}
//////////////MOUSE MOVIE FUNCTION//////////////
function mouseMovieFunc(e:MouseEvent):void
{
if(e.stageX<sPos && e.stageX>tPos)
{
if(e.stageX>PosX)
r=e.stageX/sPos;
else if(e.stageX<PosX){
r=tPos/e.stageX;
if(r>0.0)r=-r;
}
}
}
МОЖ КТО ЧТО ПОДСКАЖЕТ:)
и недает обработать своевременно click у Loader-а, да чего уж там, вот код:
////////////////////////////////////////////////////////////////////////////////////////////////
//это класс картинок, ага:), со слушателем CLICK
package {
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;
public class imageClass extends Loader {
public var indx:int;
public function imageClass() {
this.addEventListener(MouseEvent.CLICK,onClicked);
}
public function LoadImage(filename:String):void
{
this.load(new URLRequest(filename));
}
private function onClicked(ev:MouseEvent)
{
trace("clicked..");
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
//////////MovieClip//////////////
stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMovieFunc);
btn_1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
var pImage=new Array(30);
var Ir:int=0;
///////////////////////////
var posAnim=1.0;
var RadiusX=200;
var RadiusY=60;
var Scale=0.3;
var PosX=0;
var PosY=0;
///////////////////////////////
var myTimer:Timer=new Timer(100);
function fl_MouseClickHandler(event:MouseEvent):void
{
myTimer.addEventListener(TimerEvent.TIMER,anime);
for(var i=0;i<30;i++)
{
pImage[i]=new imageClass();
pImage[i].LoadImage("ava.gif");
addChild(pImage[i]);
pImage[i].indx=i;
pImage[i].contentLoaderInfo.addEventListener(Event.COMPLETE,compl);
}
}
///////////////////////////
var ssp=0;
var r=0;
function anime(event:Event):void
{var ScalePrev=0;
for(var i=0;i<30;i++)
{
pImage[i].x=PosX+RadiusX*Math.sin(posAnim+i*12*2*Math.PI/360);
pImage[i].y=PosY+RadiusY*Math.cos(posAnim+i*12*2*Math.PI/360);
Scale=pImage[i].y/(PosY+RadiusY);
pImage[i].content.scaleX=Scale*0.1;
pImage[i].content.scaleY=Scale*0.1;
}
//Sort the array so that the item which has the highest
//z position (= furthest away) is first in the array
var qrp=pImage.sortOn("y", Array.NUMERIC);
//Set new child indexes for the item
for (var i:uint = 0; i < pImage.length; i++) {
setChildIndex(pImage[i], i);}
posAnim+=r*0.05;
}
var sPos=0;
var tPos=0;
function compl(event:Event):void
{
var s=event.currentTarget.loader as Loader;
s.content.scaleX=0.1;
s.content.scaleY=0.1;
PosX=stage.stageWidth/2;
PosY=stage.stageHeight/2-100;
sPos=PosX+RadiusX;
tPos=PosX-RadiusX;
myTimer.start();
btn_1.visible=false;
}
//////////////MOUSE MOVIE FUNCTION//////////////
function mouseMovieFunc(e:MouseEvent):void
{
if(e.stageX<sPos && e.stageX>tPos)
{
if(e.stageX>PosX)
r=e.stageX/sPos;
else if(e.stageX<PosX){
r=tPos/e.stageX;
if(r>0.0)r=-r;
}
}
}
МОЖ КТО ЧТО ПОДСКАЖЕТ:)