واضح آرشیو وب فارسی:سایت ریسک: دستور Try Catch Finally ***UNIQUE*** 05 بهمن 1384, 23:17سلام این دستور Try catch تو Flash چطوری کار میکنه ؟ من یه همچین کدی نوشتم try { tellTarget("_level0.target" + _global.NumSelected + "_mc") { gotoAndStop(2); } } catch (e_err:Error) { trace(e_err.toString()); } با BreakPoint تست کردم دیددم وقتی به خط tellTarget("_level0.target" + _global.NumSelected + "_mc") میرسه یه همچین target رو پیدا نمیکنه (تا اینجاش درسته چون یه همچین MovieClip هنوز تولید نشده )ولی وقتی پیدا نکرد باید بره تو Catch اما اینجوری نیست میره خط بعدی اما اون خط رو اجرا نمیکنه در Output پیغامی با این متن Target not found: Target="_level0.target101_mc" Base="_level0.target100_mc" به من میده .اما به Ctach نمیره ؟؟؟!! ممنون میشم راهنمایی کنید چیکار کنم ؟؟ ***UNIQUE*** 05 بهمن 1384, 23:28سلام بازم یه سوال دیگه ): و اون اینکه من چطوری باید بفهممم اون MovieClip تولید شده یا نه ؟؟ با Listener باید اینو بنویسم درسته ؟ حالا چطوری باید بنویسم ؟این Listener رو باید چه جوری بنویسم ؟ به چی Add کنم؟؟! ممنون میشم راهنمایی کنید با تشکر phoenix 06 بهمن 1384, 09:141- دستور try catch finally در اینجا اصلا کاربرد نداره، اصولا به درد کار شما در برنامه نویسی AS1 نمیخوره. این دستورات برای برنامه های AS2 یا AS3 با error handling های زیاد به درد میخوره. 2- هنگامی در این دستور شما می توانید یک error را catch کنید که توسط دستور throw این error فرستاده شده باشد. و TellTarget اصلا هیچ error را Throw نمیکند. مثلا شما می خواهید که یک method به هیچ وجه پارامتر از جنس string قبول نکند و در صورت string بودن پارامتر error بوجود آید: function test(args):Void { if(typeof args == "string") { throw new Error("forbidden parameter"); } else {}; }; حالا می توانید این error را در یک بلوک try…catch دریافت کنید: init(); function init() { try { test("ok"); } catch(myError:Error) { trace(myError); } }; 3- دستور tellTarget واقعا دیگه قدیمی شده، حتی با ورود flash 6 دیگه استفاده از اون توصیه نمیشد. به جای اون خیلی راحت از شیوه Object-Oriented میشود استفاده کرد و اصلا کاری با listener ها ندارید: if(_level0["target" + _global.NumSelected + "_mc"]){} 4- میتوانید از try…catch هم بدین صورت استفاده کنید: _global.NumSelected = 1; try { exists(_global.NumSelected); // MovieClip exists, further codes goes here } catch(myError:Error) { trace(myError); } function exists(num:Number):Void { if(!_level0["target" + num + "_mc"]) { throw new Error("target" + num + "_mc" + " does not exist"); } }; amir_s 06 بهمن 1384, 15:57مثل همیشه !!!! جناب کامیار نمی آد ! وقتی میاد تا وقتی موضوع رو کاملا تشریح نکنه ول کن نیست !!!! بسیار ممنون از توضیحاتتون ! ***UNIQUE*** 06 بهمن 1384, 16:38جناب Phoneix واقعا" عالی بود بسیار ممنون از توضیحاتتون phoenix 06 بهمن 1384, 19:12دوست دارم که بیشتر وقت بگذارم ولی واقعا وقت نمی کنم(amir_s) خواهش میکنم ، مشکل خاصی بود email بزن(UNIQUE) ***UNIQUE*** 07 بهمن 1384, 08:37خواهش میکنم ، مشکل خاصی بود email بزن(UNIQUE) --------------------------------------------------------------- بسیار ممنونم (فعلا" دارم این مبحث Object-oriented رو از Help میخونم) مشکلی داشتم حتما"مزاحمتون میشم (:
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 997]