درخواست کمک/باگ های که نمیدونم تقصیر منه یا فلش

graphicplayer

New Member
با سلام به همگی
اول بگم که من به اشتباه یه بار همین مطلب رو AS2 نوشته بودم که عذرخواهی و درخواست حذفش رو از مدیر انجمن دارم. :rose:

من تازه با AS3 دارم کار میکنم و دارم یه وب رو باهاش درست میکنم
اینم تستش:

http://graphicplayer.0009.ws

برای دیدن لینک ها ماوس رو به اطراف صفحه(بالا.پایین.چپ.راست) حرکت بدین(فعلن لینک "works" و"about" خالیه.
درون لینک "news & Event" برای دیدن تصاویری که برای تست قرار داده شده به سمت چپ و راست ماوس را حرکت بدید...

اما مشکلاتی توش دارم که به صورت رندوم دیده میشن:

1-لود شدن محتویات لینک "news & Event بعض وقت ها قفل میکنه . وسط کار یا اول یا در انهتا(فعلن 8 تا عکس براش قرار دادم )
2-مکان لود شدنشون هم یهو میپره یه جای دیگه
3-با کلیک راست کردن کرز اصلی ماوس میاد دیگه هم نمیره

البته همه اینها باسماجت در رفرش کردن یا برگشتن از "news & Event به صفحه اصلی برطرف میشه
تو دیباگینگ هم ایرادی پیدا نکرد
ممنون میشم راهنماییم کنید.

راستی ممنون میشم اگه ایرادات دیگه هم تو کار میبینید بهم بگین.
احتمالا قراره یه انیمیشن ابتدایی برای نشون دادن نحوه کار کردن با وب اول کار قرار بگیره تا کاربر بفهمه که باید ماوس رو به بالا یا پایین یا چپ یا راست ببره و ....

اینم کل کدهایی که نوشتم که تمامشون تو فایل اصلی نوشته شده نه تو فایل هایی که لود میشه(به جز کد های لینک ها درون صفحه"links")

PHP:
//------------------------- frame 1 ---------------------
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
//my mouse cursor
import flash.events.MouseEvent;
Mouse.hide();
cursor_mc.startDrag(true);
cursor_mc.gotoAndPlay("loading_frame");
//pre loading
this.addEventListener(Event.ENTER_FRAME, loading,false,0,true);
function loading(e:Event):void
{
    var total:Number = this.stage.loaderInfo.bytesTotal;
    var loaded:Number = this.stage.loaderInfo.bytesLoaded;
    bar_mc_left.scaleX = loaded/total;
    bar_mc_right.scaleX = loaded/total;
    loader_txt.text = Math.floor((loaded/total)*100)+ "%";
    if (total == loaded)
    {
        play();
        cursor_mc.gotoAndStop("normal_frame");
        this.removeEventListener(Event.ENTER_FRAME, loading);
    }

}
//my context menu
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.events.ContextMenuEvent;

var my_context:ContextMenu= new ContextMenu();
my_context.hideBuiltInItems();
var my_designer = new ContextMenuItem("De:M.Sayyar");
var my_number = new ContextMenuItem("09171090951");
var my_email = new ContextMenuItem("Email");
my_designer.enabled = true;
my_number.enabled = true;
my_email.enabled = true;
my_email.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,emailadd,false,0,true);
function emailadd(evt:ContextMenuEvent):void
{
    navigateToURL(new URLRequest("mailto:[email protected]"));
}
my_context.customItems.push(my_designer,my_number);
contextMenu = my_context;
//------------------------- frame 1 ---------------------

//------------------------- frame 62 ---------------------
stop();
// **********necessery functions***********
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.ProgressEvent;
import com.greensock.*;
import com.greensock.easing.*;
import flash.display.MovieClip;
import flash.events.Event;
import flash.filters.*;
import flash.text.TextField;
import flash.text.TextFormat;
import fl.transitions.*;
import fl.transitions.easing.*; 
//********** global variables*************
var my_content_flag:String=("nothing");
var my_x_blur:Number=0;
var my_y_blur:Number=0;
var my_x:Number=0;
var my_y:Number=0;
var my_loader_x:Number=0;
var my_loader_y:Number=0;
var my_button_list :Array=new Array();
var my_adress:String=("");
var my_loader:Loader=new Loader();
var my_sub_adress:String=("");
var my_sub_loader:Loader=new Loader();
var my_loader_container:MovieClip=new MovieClip();
var my_news_number_loader:URLLoader=new URLLoader();
var my_works_number_loader:URLLoader=new URLLoader();
var my_news_number:Number=0;
var my_works_number:Number=0;
//***********filters**********************
var my_shadow:DropShadowFilter = new DropShadowFilter();
my_shadow.distance = 5;
my_shadow.angle=45;
my_shadow.alpha=0.7;
my_shadow.color = 0x000000;
my_shadow.blurX = 5;
my_shadow.blurY = 5;
my_shadow.quality = 5;
//************* my functions**********
// to know how many news are available
my_news_number_loader.dataFormat=URLLoaderDataFormat.VARIABLES;
my_news_number_loader.addEventListener(Event.COMPLETE,newsnumber,false,0,true);
my_news_number_loader.load(new URLRequest("data/news/news.txt"));
function newsnumber(evt:Event):void{
        my_news_number=my_news_number_loader.data.number;
        trace("news number is = "+ my_news_number);
}
// to know how many works are available
my_works_number_loader.dataFormat=URLLoaderDataFormat.VARIABLES;
my_works_number_loader.addEventListener(Event.COMPLETE,worksnumber,false,0,true);
my_works_number_loader.load(new URLRequest("data/works/works.txt"));
function worksnumber(evt:Event):void{
        my_works_number=my_works_number_loader.data.number;
        trace("works number is = "+ my_works_number);
}
// disable main button
function disable_button_list():void{
    for(var i=0;i<5;i++){
    my_button_list[i].mouseEnabled=false;
    trace(i+"buttons disabled");
    }
    about_button.removeEventListener(MouseEvent.MOUSE_OUT,abouttonormal);
    links_button.removeEventListener(MouseEvent.MOUSE_OUT,linkstonormal);
    news_button.removeEventListener(MouseEvent.MOUSE_OUT,newstonormal);
    works_button.removeEventListener(MouseEvent.MOUSE_OUT,workstonormal);
    dirin_logo.removeEventListener(MouseEvent.MOUSE_OUT,dirintonormal);
    
}
//enable main button
function enable_button_list():void{
    for(var i=0;i<5;i++){
    my_button_list[i].mouseEnabled=true;
    trace(i+"buttons enabled");
    }
    about_button.addEventListener(MouseEvent.MOUSE_OUT,abouttonormal,false,0,true);
    links_button.addEventListener(MouseEvent.MOUSE_OUT,linkstonormal,false,0,true);
    news_button.addEventListener(MouseEvent.MOUSE_OUT,newstonormal,false,0,true);
    works_button.addEventListener(MouseEvent.MOUSE_OUT,workstonormal,false,0,true);
    dirin_logo.addEventListener(MouseEvent.MOUSE_OUT,dirintonormal,false,0,true);
}
//right cursor
function gorightcursor(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("right_frame");
}
function righttonormalcursor(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("right_to_normal_frame");
}
//left cursor
function goleftcursor(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("left_frame");
}
function lefttonormalcursor(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("left_to_normal_frame");
}
// loading cursor
function goloadingcursor():void
{
    cursor_mc.gotoAndPlay("loading_frame");
}
function loadingtonormalcursor():void
{
    cursor_mc.gotoAndStop("normal_frame");
}
//about button
my_button_list.push(about_button);
about_button.addEventListener(MouseEvent.MOUSE_OVER,goabout,false,0,true);
about_button.addEventListener(MouseEvent.CLICK,aboutclick,false,0,true);
about_button.addEventListener(MouseEvent.MOUSE_OUT,abouttonormal,false,0,true);
function goabout(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("about_frame");
}
function abouttonormal(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("about_to_normal_frame");
}
function aboutclick(evt:MouseEvent):void{
    my_content_flag=("about");
    my_x_blur=100;
    my_y_blur=10;
    my_adress=("data/about.swf");
    my_x=124;
    my_y=84;
    my_loader_x=1200;
    my_loader_y=84;
    pageloading();
}
//links button
my_button_list.push(links_button);
links_button.addEventListener(MouseEvent.MOUSE_OVER,golinks,false,0,true);
links_button.addEventListener(MouseEvent.MOUSE_OUT,linkstonormal,false,0,true);
links_button.addEventListener(MouseEvent.CLICK,linksclick,false,0,true);
function golinks(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("links_frame");
}
function linkstonormal(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("links_to_normal_frame");
}
function linksclick(evt:MouseEvent){
    my_content_flag=("links");
    my_adress=("data/links.swf");
    my_x_blur=10;
    my_y_blur=100;
    my_x=124;
    my_y=84;
    my_loader_x=124;
    my_loader_y=1200;
    pageloading();
}
//news button;
my_button_list.push(news_button);
news_button.addEventListener(MouseEvent.MOUSE_OVER,gonews,false,0,true);
news_button.addEventListener(MouseEvent.MOUSE_OUT,newstonormal,false,0,true);
news_button.addEventListener(MouseEvent.CLICK,newsclick,false,0,true);
function gonews(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("news_frame");
}
function newstonormal(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("news_to_normal_frame");
}
function newsclick(evt:MouseEvent):void{
    my_content_flag=("news");
    my_x_blur=10;
    my_y_blur=100;
    my_adress=("data/news.swf");
    my_x=124;
    my_y=84;
    my_loader_x=124;
    my_loader_y=-1000;
    pageloading();
}
//work butoonی
my_button_list.push(works_button);
works_button.addEventListener(MouseEvent.MOUSE_OVER,goworks,false,0,true);
works_button.addEventListener(MouseEvent.MOUSE_OUT,workstonormal,false,0,true);
works_button.addEventListener(MouseEvent.CLICK,worksclick,false,0,true);
function goworks(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("works_frame");
}
function workstonormal(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("works_to_normal_frame");
}
function worksclick(evt:MouseEvent):void{
    my_content_flag=("works");
    my_x_blur=100;
    my_y_blur=10;
    my_adress=("data/works.swf");
    my_x=124;
    my_y=84;
    my_loader_x=-1200;
    my_loader_y=84;
    pageloading();
}
//logo button
my_button_list.push(dirin_logo);
dirin_logo.buttonMode=false;
dirin_logo.addEventListener(MouseEvent.MOUSE_OVER,godirin,false,0,true);
dirin_logo.addEventListener(MouseEvent.MOUSE_OUT,dirintonormal,false,0,true);
var dirin_tweenmax:TweenMax=new TweenMax(dirin_logo,0.4,{y:"10",alpha:0.7,colorMatrixFilter:{brightness:0.5},ease:Sine.easeInOut,paused:true});
function godirin(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("dirin_frame");
    dirin_tweenmax.restart();
}
function dirintonormal(evt:MouseEvent):void
{
    cursor_mc.gotoAndPlay("dirin_to_normal_frame");
    dirin_tweenmax.reverse();
}
//loading
function pageloading():void{
    var my_url_request:URLRequest=new URLRequest(my_adress);
    my_loader.load(my_url_request);
    goloadingcursor();
    disable_button_list();
    }
    my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadcompletefunc,false,0,true);
    my_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadprogressfunc,false,0,true);
    function loadprogressfunc(evt:ProgressEvent):void{
        trace("download"+evt.bytesLoaded+"out of"+evt.bytesTotal+"bytes");
    }
    
    function loadcompletefunc(evt:Event):void{
        trace("load complete");
        loadingtonormalcursor();
        addChildAt(my_loader,5);
        my_loader_container=my_loader.content as MovieClip;
        my_loader_container.x=my_x;
        my_loader_container.y=my_y;
        loaderintween();
}

function loaderintween():void{
    TweenMax.from(my_loader_container,1,{x:my_loader_x,y:my_loader_y,alpha:0,blurFilter:{blurX:my_x_blur,blurY:my_y_blur},ease:Strong.easeOut,onComplete:incompletefunc});
}

function loadertweenout():void{
    TweenMax.to(my_loader_container,1,{x:my_loader_x,y:my_loader_y,alpha:0,blurFilter:{blurX:my_x_blur,blurY:my_y_blur},ease:Strong.easeIn,onComplete:outcompletefunc});
}
function outcompletefunc():void{
    enable_button_list();
    my_news_number=my_news_number_loader.data.number;
    removeChild(my_loader);
}
function incompletefunc():void{
    my_loader_container.addEventListener(Event.ENTER_FRAME,loadercontrol,false,0,true);
    if(my_content_flag=="news"){
    subloadingtask();
    inloadercontrol();
    }
}
function loadercontrol(evt:Event):void{
    // common bak button control
    my_loader_container.back_to_main_button.addEventListener(MouseEvent.MOUSE_OVER,goback,false,0,true);
    my_loader_container.back_to_main_button.addEventListener(MouseEvent.MOUSE_OUT,backtonormal,false,0,true);
    my_loader_container.back_to_main_button.addEventListener(MouseEvent.MOUSE_DOWN,backtomain,false,0,true);
    function goback(evt:MouseEvent){
        cursor_mc.gotoAndPlay("back_frame");
    }
    function backtonormal(evt:MouseEvent){
        cursor_mc.gotoAndPlay("back_to_normal_frame");
    }
    function backtomain(evt:MouseEvent){
        loadertweenout()
    }
}

function inloadercontrol():void{
    my_loader_container.my_right_button.addEventListener(MouseEvent.MOUSE_OVER,gorightcursor,false,0,true);
    my_loader_container.my_right_button.addEventListener(MouseEvent.MOUSE_OUT,righttonormalcursor,false,0,true);
    my_loader_container.my_right_button.addEventListener(MouseEvent.CLICK,previousubloading,false,0,true);
    my_loader_container.my_left_button.addEventListener(MouseEvent.MOUSE_OVER,goleftcursor,false,0,true);
    my_loader_container.my_left_button.addEventListener(MouseEvent.MOUSE_OUT,lefttonormalcursor,false,0,true);
    my_loader_container.my_left_button.addEventListener(MouseEvent.CLICK,nextsubloading,false,0,true);
    // previousubloading
    function previousubloading(evt:MouseEvent):void{
        if(my_news_number>0){
            trace("previous is avilable")
            goloadingcursor();
            my_news_number--;
            trace(my_news_number);
            my_loader_container.removeChild(my_sub_loader);
            subloadingtask();
        }
    }
    function nextsubloading(evt:MouseEvent):void{
        if(my_news_number<my_news_number_loader.data.number){
            trace("next is avilable")
            goloadingcursor();
            my_news_number++;
            trace(my_news_number);
            my_loader_container.removeChild(my_sub_loader);
            subloadingtask();
        }
    }
}
//subloading task
function subloadingtask():void{
    goloadingcursor();
    my_loader_container.my_left_button.removeEventListener(MouseEvent.MOUSE_OUT,lefttonormalcursor);
    my_loader_container.my_right_button.removeEventListener(MouseEvent.MOUSE_OUT,righttonormalcursor);
    my_loader_container.my_right_button.mouseEnabled=false;
    my_loader_container.my_left_button.mouseEnabled=false;

    my_sub_adress="data/news/news"+int(my_news_number)+".jpg";
    trace("sub_adress is   " +my_sub_adress);
    var my_sub_url_request:URLRequest=new URLRequest(my_sub_adress);
    my_sub_loader.load(my_sub_url_request);
    my_sub_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,subloadcomplete,false,0,true);
    my_sub_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,subloadprogress,false,0,true);
    function subloadprogress(evt:ProgressEvent){
        trace("download"+evt.bytesLoaded+"out of"+evt.bytesTotal+"bytes");
    }
    function subloadcomplete(evt:Event):void{
        trace("sub load complete");
        loadingtonormalcursor();
        my_loader_container.my_left_button.addEventListener(MouseEvent.MOUSE_OUT,lefttonormalcursor,false,0,true);
        my_loader_container.my_right_button.addEventListener(MouseEvent.MOUSE_OUT,righttonormalcursor,false,0,true);
        my_loader_container.my_right_button.mouseEnabled=true;
        my_loader_container.my_left_button.mouseEnabled=true;

        my_loader_container.addChildAt(my_sub_loader,3);
        my_sub_loader.x=(my_loader_container.width/2)-(my_sub_loader.width/2);
        my_sub_loader.y=(my_loader_container.height/2)-(my_sub_loader.height/2)+13;
    }
}


//------------------------- frame 62 ---------------------
چه اتفاقی تو برنامه نویسی میافته که بعضی وقت ها درست عمل میکنه بعضی وقت ها نه!؟ فکر میکنم بعضی شروط یا بعضی از فراخوانی توابع که به اشتباه(مکان یا زمان اشتباه) نوشته شده باشند یا نوشته نشده باشند باعث همچین چیزی بشه. اما چیزی تو کار خودم نتونستم پیدا کنم...:sad:

اگه لازم شد سورس کار رو هم میذارم. میدونم جمله ی تکراری هست اما : دوستان بشتابید که من معجولم!
_________
پاورقی : معجولم = مصدر جعلی خود ساخته بر وزن مفعولم از فعل عجل( همون عجله ی خودمون)
 

amird

خبرگان انجمن فلش
سلام
والا اینجوری که نمی شه از مشکلات کار سر دراورد ولی به جای cursor_mc.startDrag(true); بزن
PHP:
cursor_mc.addEventListener(Event.ENTER_FRAME,function (e:Event){ 
                   Mouse.hide();
                   cursor_mc.x= mou***;
                   cursor_mc.y= mouseY;});


در ضمن اون mouse.hide خودت رو حذف کن . هر کاری می خوای روی ماوس انجام بدی بذار تو این تابع .

ببخشید می پرسم شما کد رو خودتون نوشتید یا تمپلیت هست ؟

موفق باشی
 
آخرین ویرایش:

graphicplayer

New Member
سلام
والا اینجوری که نمی شه از مشکلات کار سر دراورد ولی به جای cursor_mc.startdrag(true); بزن
PHP:
cursor_mc.addeventlistener(event.enter_frame,function (e:event){ 
                   mouse.hide();
                   cursor_mc.x= mou***;
                   cursor_mc.y= mousey;});
در ضمن اون mouse.hide خودت رو حذف کن . هر کاری می خوای روی ماوس انجام بدی بذار تو این تابع .

ببخشید می پرسم شما کد رو خودتون نوشتید یا تمپلیت هست ؟

موفق باشی
ممنون از اینکه بالاخره یه نفر اومد. چشم امتحانش میکنم البته همینجوری که بهش نگاه میکنم کد شما اجرای دقیق تری داره.
کد ها رو هم خودم نوشتم و تمپلیت نیست.
پس چجوری میشه این طور ایراد ها رو شناسایی و برطرف کرد؟
 
آخرین ویرایش:

amird

خبرگان انجمن فلش
خواهش می کنم
ببین باید debug کنی . ساده ترین راه برای debug کردن هم اینه که کدت رو تیکه تیکه به صورت cooment در بیاری و ببینی مشکل از کجای کار هست و فوقش همون قسمت جزئی رو به صورت سوال توی انجمن مطرح کنی .
آموزش کامل debug کردن به وسیله debug workspace فلش فکر کنم توی قسمت آموزش اکشن از صفر همین اجمن هست . به اونم یه نگاهی بنداز ولی برای همچین کدهایی همین روش کامنت کردن راحتتر هست .
موفق باشی
 

++Hadi++

Active Member
سعی می کنم به مشکلتون برسم ...
اگه وقت کردم یه کم شاید یکی دو روز صبر کنین ...
بای...
 

graphicplayer

New Member
خواهش می کنم
ببین باید debug کنی . ساده ترین راه برای debug کردن هم اینه که کدت رو تیکه تیکه به صورت cooment در بیاری و ببینی مشکل از کجای کار هست و فوقش همون قسمت جزئی رو به صورت سوال توی انجمن مطرح کنی .
آموزش کامل debug کردن به وسیله debug workspace فلش فکر کنم توی قسمت آموزش اکشن از صفر همین اجمن هست . به اونم یه نگاهی بنداز ولی برای همچین کدهایی همین روش کامنت کردن راحتتر هست .
موفق باشی
ممنون ولی همین کار رو کردم جالب همینه که تو debug هم هیچ خطایی نمیگیره! تکه تکه هم بررسیش کردم چیزی پیدا نکردم( البته در گیجی من هیچ شکی نیست)
در مورد کدی که واسه ماوس نوشته بودین : امتحانش کردم که اون هم یه ایراد داره؛ ایرادش هم اینه که وقتی راست کلیک میکنین برای سلکت کردن contextMenuItem ها دیگه هیچ نوع کرزری وجود نداره ،نه دیفالت و نه کاستوم.
واسه همین یه کلک مرغابی بهش زدم که فعلن کارم رو راه انداخت:

PHP:
//mouse click (for hide defult mouse cursor after rightClick for context menu)
stage.addEventListener(MouseEvent.MOUSE_DOWN,mousehide,false,0,true);
function mousehide(evt:MouseEvent):void{
Mouse.hide();
cursor_mc.x=mou***;
cursor_mc.y=mouseY;
}
باقی دوستان نمیخواین ماه رمضونی ثواب کنین؟!!!
 

UnknownUser

Well-Known Member
سلام
در مورد Load . چون source رو کامل نگذاشتین می تونم فقط چند نکته رو بهتون بگم که شاید با رعایت اون ها به یه نتیجه اای رسیدین

1- Loader ای که شما در نظر گرفتین بعد از removeChild و load دوباره ، مجدد addEventListener رو براش در نظر می گیرین این در حالیه که قبلا این کار انجام شده و بهتره داخل subloadingtask شما instance جدیدی برای loader تون که my_sub_loader هست در نظر بگیرین
PHP:
if(my_sub_loader != null)
 my_sub_loader = null;
my_sub_loader = new Loader();
2 -
listener ای که برای COMPLETE در نظر گرفتین رو خارج از subloadingtask بگذارین

3- ایراد برنامه شما dispatch نشدن COMPLETE هست

4 - useWeakRefrence رو برای Event در صورتی که موارد بالا جواب نداد false کنین


در مورد مشکلات دیگه کارتون دوستان می تونن کمکتون کنن ;)


باقی دوستان نمیخواین ماه رمضونی ثواب کنین؟!!!
چندان جالب نبود !



موفق باشید
 
آخرین ویرایش:

graphicplayer

New Member
سلام
در مورد Load . چون source رو کامل نگذاشتین می تونم فقط چند نکته رو بهتون بگم که شاید با رعایت اون ها به یه نتیجه اای رسیدین

1- Loader ای که شما در نظر گرفتین بعد از removeChild و load دوباره ، مجدد addEventListener رو براش در نظر می گیرین این در حالیه که قبلا این کار انجام شده و بهتره داخل subloadingtask شما instance جدیدی برای loader تون که my_sub_loader هست در نظر بگیرین
PHP:
if(my_sub_loader != null)
 my_sub_loader = null;
my_sub_loader = new Loader();
2 -
listener ای که برای COMPLETE در نظر گرفتین رو خارج از subloadingtask بگذارین

3- ایراد برنامه شما dispatch نشدن COMPLETE هست

4 - useWeakRefrence رو برای Event در صورتی که موارد بالا جواب نداد false کنین


در مورد مشکلات دیگه کارتون دوستان می تونن کمکتون کنن ;)


چندان جالب نبود !



موفق باشید
ممنون از پاسخ هاتون،درمورد:
1-انجامش دادم و ممنون
2-با بیرون بردن complete listener دسترسی به تابع subloadcomplete از بین میره و وقتی تابع رو هم میبرم بیرون دیگه اتفاق نمیافته.
3-خوب اگر ایراد برنامه dispatch نشدن COMPLETE هست پس چرا trace که تو تابع subloadcomplete هست اجرا میشه و باقی اعمال تو این تابع هم اجرا میشه؟ درست میگم؟ اگه dispatch نمیشد اون تابع هم نباید صدا زده بشه دیگه؟
در مورد :
چندان جالب نبود !
فقط یه درخواست با لحن شوخی بود که قصد رنجش کسی درش نبود.

فایل سورس رو هم گذاشتم فقط برا اینکه حجم کم بشه عکس ها رو حذف کردم که زحمت کپی کردن چند تا عکس داخل data/news و تغییر تعداد آن درون فایل متنی کنارش( توضیح در فایل متنی readmefirst)
 

پیوست ها

  • send.rar
    356.3 کیلوبایت · بازدیدها: 3
آخرین ویرایش:

++Hadi++

Active Member
من دارم انجامش می دم ...
کد هاتون فاقد نظمه ...
یه کم صبر کنین دارم یه سمپل fla بهتون میدم ...
دارم یه سمپل خوب واست درست می کنم فردا هم انشاءال... آپه ...
 

graphicplayer

New Member
من دارم انجامش می دم ...
کد هاتون فاقد نظمه ...
یه کم صبر کنین دارم یه سمپل fla بهتون میدم ...
دارم یه سمپل خوب واست درست می کنم فردا هم انشاءال... آپه ...
ممنون اینکه فاقد نظمه رو میدونم و امید وارم به کمک شما و باقی دوستان برطرف بشه من به خاطر این کار تصمیم گرفتم به زور هم که شده باas3 کار کنم و فکر میکنم همین عجله م باعث این مشکلات و بی نظمی ها شده باشه.
باز هم ممنون
 

++Hadi++

Active Member
سلام
یکی از دردسر سازترین کارا تو فلش ، ادیت کردن یه فایله ...
منم تا اونجایی که تونستم ، اولین کدی رو که نوشتین رو ادیت کردم .
چیزیو که ادیت کردم رو دان کنید . اصلا کامل نیست . ولی کد نویسیشو اصولی پیش بردم .
دومین سورسی رو که گذاشتین ، خیلی کامل تر بود و اگه اونو با ساختاری که نوشتم ، بنویسین ، هم نظمش و هم ادیتش برا خودتون بهتر می شه .
1- وقتی می خواهین به یه شی Loader دستور لود کردن و پر شدن چیزیو می دین ، قبلش یه دستور :
PHP:
myLoader.unload();
رو فراخونی کنین تا خالیش کنین . اگه پر بوده باشه باید خالی شه ...
2- وقتی رویداد اتمام لود رو برای لودر می دین بهتره با دستور زیر یه دستور برا وقتی بدین که لودر نتونسته فایل یا عکسو لود کنه :
PHP:
myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,err);
myURLLoader.addEventListener(IOErrorEvent.IO_ERROR,err);
function err(evt:IOErrorEvent):void
{
      trace("Error!");
}
این باعث می شه به جای خطای runtime ، فانکشن مد نظر اجرا شه .
3- کد هاتونو سعی کنین به نواحی مناسب طبقه بندی کنین یعنی :
قسمت دستور stop()
قسمت ایمپورت ها
قسمت تنظیمات اولیه مثل تنظیمات صحنه
قسمت تعریف متغیر های سراسری
قسمت کد اصلی و روت که اجرا می شن و رویداد های پایه ای با دستور addEventListener
قسمت فانکشن ها
بعد هر دستورو با نظم سر جاش بنویسین ...
4- همیشه در باز کردن تگ بدنه دستوراتی که تگ دارند مثل if یا for یا function ، بصورت آبشاری باز کنین :
PHP:
function FFF():void
{
   for(...)
   {
      if()
      {
         while(...)
         {
         }
      }
   }
}
حالا فرض کنین دستور بالا و حتی پیچیده تر از اینا رو تو هم تو هم باز کنین ... چی می شه ...
فاصله گذاری و تو رفتگی ها هم باعث خوانایی کد می شه ...
5- سعی کنین اطلاعاتی مثل اخبار و تعداد خبر رو از ایکسمل بخونین ...
در مجموع سوالی داشتین هستیم ...
 

پیوست ها

  • AS3 Sample.rar
    592.6 کیلوبایت · بازدیدها: 3

graphicplayer

New Member
سلام
یکی از دردسر سازترین کارا تو فلش ، ادیت کردن یه فایله ...
منم تا اونجایی که تونستم ، اولین کدی رو که نوشتین رو ادیت کردم .
چیزیو که ادیت کردم رو دان کنید . اصلا کامل نیست . ولی کد نویسیشو اصولی پیش بردم .
دومین سورسی رو که گذاشتین ، خیلی کامل تر بود و اگه اونو با ساختاری که نوشتم ، بنویسین ، هم نظمش و هم ادیتش برا خودتون بهتر می شه .
1- وقتی می خواهین به یه شی loader دستور لود کردن و پر شدن چیزیو می دین ، قبلش یه دستور :
PHP:
myloader.unload();
رو فراخونی کنین تا خالیش کنین . اگه پر بوده باشه باید خالی شه ...
2- وقتی رویداد اتمام لود رو برای لودر می دین بهتره با دستور زیر یه دستور برا وقتی بدین که لودر نتونسته فایل یا عکسو لود کنه :
PHP:
myloader.contentloaderinfo.addeventlistener(ioerrorevent.io_error,err);
myurlloader.addeventlistener(ioerrorevent.io_error,err);
function err(evt:ioerrorevent):void
{
      trace("error!");
}
این باعث می شه به جای خطای runtime ، فانکشن مد نظر اجرا شه .
3- کد هاتونو سعی کنین به نواحی مناسب طبقه بندی کنین یعنی :
قسمت دستور stop()
قسمت ایمپورت ها
قسمت تنظیمات اولیه مثل تنظیمات صحنه
قسمت تعریف متغیر های سراسری
قسمت کد اصلی و روت که اجرا می شن و رویداد های پایه ای با دستور addeventlistener
قسمت فانکشن ها
بعد هر دستورو با نظم سر جاش بنویسین ...
4- همیشه در باز کردن تگ بدنه دستوراتی که تگ دارند مثل if یا for یا function ، بصورت آبشاری باز کنین :
PHP:
function fff():void
{
   for(...)
   {
      if()
      {
         while(...)
         {
         }
      }
   }
}
حالا فرض کنین دستور بالا و حتی پیچیده تر از اینا رو تو هم تو هم باز کنین ... چی می شه ...
فاصله گذاری و تو رفتگی ها هم باعث خوانایی کد می شه ...
5- سعی کنین اطلاعاتی مثل اخبار و تعداد خبر رو از ایکسمل بخونین ...
در مجموع سوالی داشتین هستیم ...
سلام و ممنون بابت توضیحات خوبتون
اما باز هم همون مشکل اتفاقی لود نشدن وجود داره . لیسنر ارور رو هم اضافه کردم ولی وقتی لود نمیشه اون هم دیسپچ نمیشه و باز هم هیچ خطایی تشخیص نمیده!
ممنون میشم کمکم کنید
 

++Hadi++

Active Member
در مورد لودر باید بگم لودر رو فقط 1 بار اونم بعد از نمونه سازی ، addChild می کنین و بعد از addChild شدن ، فقط load یا unload می کنین .
در مورد متغیر ها ، سعی کنین به جای اینکه اونا رو به صورت محلی و در یک فانکشن تعریف کنین ، به صورت سراسری و در ابتدای محیط کد نویسیتون تعریف کنین .
من یه اشتباه کردم و تو اون سورس ، addChild رو ننوشتم .
فقط 1 بار addChild ...
در مورد اتفاقی لود نشدن ، اگه یه کم توضیح بدین ، بیشتر می تونم کمکتون کنم ... ببخشین من یه کم وقت کم دارم و نتونستم توضیحاتتونو بخونم ... کوتاه و مفید لطفا هدفتونو بگین ...
بای...
 

graphicplayer

New Member
در مورد لودر باید بگم لودر رو فقط 1 بار اونم بعد از نمونه سازی ، addChild می کنین و بعد از addChild شدن ، فقط load یا unload می کنین .
در مورد متغیر ها ، سعی کنین به جای اینکه اونا رو به صورت محلی و در یک فانکشن تعریف کنین ، به صورت سراسری و در ابتدای محیط کد نویسیتون تعریف کنین .
من یه اشتباه کردم و تو اون سورس ، addChild رو ننوشتم .
فقط 1 بار addChild ...
در مورد اتفاقی لود نشدن ، اگه یه کم توضیح بدین ، بیشتر می تونم کمکتون کنم ... ببخشین من یه کم وقت کم دارم و نتونستم توضیحاتتونو بخونم ... کوتاه و مفید لطفا هدفتونو بگین ...
بای...
ممنون
منظورم اینه که بعضی وقت ها کاملا لود میشه و بدون هیچ دردسری نمایش داده میشه ولی بعضی وقت ها وسط کار میمونه یا آخر کار هیچ خطا یی هم نمیگیره نه با تابع error نه دیباگ
در مورد سراسری تعریف کردن متغییر ها هم تمام سعی م رو کردم ولی بعض جا ها مثل استفاده از tween class ها نمیدنم چجوری باید این کارو کرد تو سورس اکثر متغیر ها رو سراسری تعریف کردم
ممنون از اینکه با وجود کمبود وقت اهمیت میدین
 
آخرین ویرایش:

++Hadi++

Active Member
در مورد TweenMax من همیشه سعی می کنم این کار رو بکنم فقط و فقط از تابع استاتیک to استفاده می کنم :
PHP:
TweenMax.to(mc,1,{x:10,ease:Circ.easeOut});
در مورد لود نشدن ، اصولا باید درست باشه . حالا دوست عزیزم graphicplayer
سورستو کامل کن و اصلاحات ساختاری و نظمی رو حل کن و بهم بده تا حللش کنم . منظورم اون سورس دومیه هست .... با اون پارامتر هایی که گفتم حللش کن.
بعد انشاءال... مشکلاتشو حل می کنم ...
موفق باشی ...
 

graphicplayer

New Member
در مورد TweenMax من همیشه سعی می کنم این کار رو بکنم فقط و فقط از تابع استاتیک to استفاده می کنم :
PHP:
TweenMax.to(mc,1,{x:10,ease:Circ.easeOut});
در مورد لود نشدن ، اصولا باید درست باشه . حالا دوست عزیزم graphicplayer
سورستو کامل کن و اصلاحات ساختاری و نظمی رو حل کن و بهم بده تا حللش کنم . منظورم اون سورس دومیه هست .... با اون پارامتر هایی که گفتم حللش کن.
بعد انشاءال... مشکلاتشو حل می کنم ...
موفق باشی ...
چسم حتما تکمیلش میکنم و میذارمش.
در مورد tweenMax خب اینجوری اگه بخواید برگردونیدش (reverse) جکار میکنید. از نو یکی دیگه با from مینویسید؟ اینجوری کنترل کم نیست؟
بعض وقت ها من نیاز پیدا میکنم که از toFromاستفاده کنم اونجا هم نمیتونم تابع تعریفش کنم

باز هم بابت کمک و وقتی که گذاشتین بسیار ممنون.
 

++Hadi++

Active Member
آره خوب همش همون عبارت TweenMax رو می نویسید ولی دیگه دنگ و فنگی ندارید .
برای هر حرکت انقلابی و اصلی در فلش (Tween) می تونین یه متغیری رو بصورت سراسری در اون تیکه کدتون تعریف کنین تا بیاد و حرکت اونو در خودش ذخیره کنه . دیگه اون متغیر همه جا تو دسترس شماست و دیگه فک نکنم مشکلی پیش بیاد . هر جا خواستین اونو reverse می کنین و هر جا خواستین ، البته بدون استفاده از عبارت var یه Tween جدید بهش ذخیره می کنین ... من همیشه با تعریف متغیر داخل تابع بصورت محلی مشکل دارم چون ، حس می کنم با تعداد VAR های زیاد ، هی حافظه مشغول تر و پر تر می شه . مخصوصا وقتایی که با دستور naw به اونا ، اشیایی رو جدید می سازیم و می ریزیم و مخصوصا در هر بار اجرای تابع ، چرا که هر بار اجرا به اجراهای قبلی ربطی نداره ...
موفق باشید ...
 

جدیدترین ارسال ها

بالا