دسترسی به فرزند مووی کلیپ target

سلام دوستانمن کد زیر را نوشتم leaf اسم مووی کلیپ لینکیج شدمه و از leaf به تعدادی وارد استیج کردمو داخلشون یک تکست فیلد ایجاد کردم و به هرکدوم متن خاصی دادم بعد با اضافه کردن یک لیستنر گفتم وقتی رو هر کدوم کلیک شد نوشته توش رو با trace به نمایش در بیاره اما با ارور :

TypeError: Error #1010: A term is undefined and has no properties.
at Untitled_fla::MainTimeline/texti()
روبرو شدم می خواستم راهنماییم کنید بگید مشکل کجاست و چطوری رفعش کنم . ممنون
[PHPS]for(var i : int = 0 ; i< 7 ; i++){
var mci : MovieClip = new leaf();
addChild(mci);
mci.x = 70*i ;
mci.y = 100 ;
mci.addEventListener(MouseEvent.MOUSE_DOWN,texti);
var tex : TextField = new TextField();
tex.text = "esme MC is " + i ;
tex.visible = false;
mci.addChild(tex);
}
function texti(e:MouseEvent):void
{
trace("click");
trace(e.target.tex.text)
}[/PHPS]
 

kar1000

Member
سلام
این روش من اصلا روش خوبی نیست اما جواب میده[PHPS]
var myarr_text:Array=new Array
var myarr_mc:Array=new Array
for(var i : int = 0 ; i< 7 ; i++){
var mci : MovieClip = new leaf()
mci.name="mci"+i
addChild(mci)
mci.x = 70*i
mci.y = 100
myarr_mc=mci
var tex : TextField = new TextField()
tex.text = "esme MC is " + i
myarr_text=tex
tex.visible = false
myarr_mc.addChild(myarr_text)
myarr_mc.addEventListener(MouseEvent.MOUSE_DOWN,texti)
}
function texti(e:MouseEvent):void
{
var var1:String
trace("click")
var1=e.target.name
var1=var1.slice(3)
trace(myarr_text[var1].text)
}

[/PHPS]
 
سلام kar1000
ممنون از وقتی که گذاشتی و پاسخ جالبی که نوشتی اما اگر دوستانه بخوام بهت بگم روشی که پیشنهاد دادی بااصطلاح مثل خوردن لقمه از پشت سره ، و تو به TEXT داخل مووی کلیپ دسترسی پیدا نکردی بلکه از TEXT ذخیره شده در ارایه استفاده کردی اما من می خوام به متن TEXT داخل مووی کلیپ دسترسی داشته باشم ، بازم ممنون .
دوستان اگه کسی می تونه راهنمایی کنه باز هم ممنونش میشم .
 

++Hadi++

Active Member
به جای اینکه رویداد کلیک رو روی دکمه یا مووی کلیپ leaf بزارید ،روی تکست باکس اضافه شده بزارید...
 
سلام ++Hadi++ ممنون از جوابت
اما در نظر بگیر که من حتی text موردنظر را از نظر visible به صورت false می کنم پس من نمی خوام حتی مشاهده بشه ، چه برسه به اینکه لیستنر رو روی اون قرار بدم من فقط می خوام از متن ذخیره شده توش استفاده بکنم ،
دوستان به نظرتون اصلا این دسترسی که من می خوام انجام بدم امکان پذیره و اگه امکان پذیره پس کدم رو چگونه تغییر بدم که امکان پذیر بشه ؟
 

spryboy

کاربر فعال
سلام
[PHPS]
for (var i : int = 0; i< 7; i++)
{
var mci : MovieClip = new leaf();
addChild(mci);
mci.x = 70 * i;
mci.y = 100;
mci.addEventListener(MouseEvent.MOUSE_DOWN,texti);
var tex : TextField = new TextField();
tex.name = 'txt';
tex.text = "esme MC is " + i;
tex.visible = false;
mci.addChild(tex);
}

function texti(e:MouseEvent):void
{
trace("click");
trace(e.target.getChildByName('txt').text);
}[/PHPS]
یــا
[PHPS]
for (var i : int = 0; i< 7; i++)
{
var mci : MovieClip = new leaf();
addChild(mci);
mci.x = 70 * i;
mci.y = 100;
mci.addEventListener(MouseEvent.MOUSE_DOWN,texti);
var tex : TextField = new TextField();
tex.text = "esme MC is " + i;
tex.visible = false;
mci.addChild(tex);
}

function texti(e:MouseEvent):void
{
trace("click");
trace(e.target.getChildAt(e.target.numChildren - 1).text);
}[/PHPS]


موفق باشید
 

++Hadi++

Active Member
خوب می تونید آلفاشو صفر کنید ولی کماکان بشه اونو با موس حس کرد.من خیلی راهها رو می شناسم.یکی از راههاش اینه که کلاس مووی کلیپ از نوع داینامیک هست و می شه هر پروپرتی ومتد ثانویه ای رو به اون از بیرون بچشبونین یعنی :
PHP:
myMc.ZIZIGOOLOO=TextField01;
خوب ! ZIZIGOOLOO تو کلاس مووی کلیپ تعریف نشده ولی شما می تونین به خاطر داینامیک بودن کلاسش از بیرون بچسبونین.تو این راه شما می تونین بعد از کلیک شدن مووی کلیپ ،به اون مشخصه خاصتون دست پیدا کنین البته به شرطی که تو متد هدف ،evt.currentTarget رو به MovieClip کست کنید یعنی :
PHP:
MovieClip(evt.currentTarget)
با این روش شما در داقع شی displayObject رو به مووی کلیپ کست کردین و بعد تو مرحله مووی کلیپ داینامیک ،می تونین به اون مشخصه ZIZIGOOLOO ثانویه که چسبوندین دست پیدا کنید.حالا اون زیزیگولو کیه ؟؟؟همون تکست فیلد مربوط به اون مووی کلیپه

PHP:
MovieClip(evt.currentTarget).ZIZIGOOLOO
PHP]MovieClip(evt.currentTarget).ZIZIGOOLOO.text[/PHP]
بعدش دیگه هر بلایی خواستین سرش می یارین ویزیبلشو فالس کنین و معلق بزنید و کامپیوتر رو روشن خاموش کنین دیگه فرقی نداره...مهم اینه که الان هر دکمه یه مشخصه صیغه ای ثانویه داره که بهش چسبوندین...بای....
 
سلام
++Hadi++
ممنون از جواب جالبت ، روش نویی بود و سواد من را افزایش داد
باز هم ممنون از همه بچه ها که جواب دادن .
 

mehran9723

New Member
سلام کافی است داخل متد texti بصورت زیر عمل کنید :
[PHPS]
var mc:movieClip = e.currentTarget as MovieClip
mc.tex.text = "mehran"
[/PHPS]
 

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

بالا