dیک سئوال درباره باتن ها

splinter cell

Well-Known Member
سلام به همه:rose:
من یک دکمه سه حالته ساختم(بنام btn) و توی اون هم یک تکست داینامیک گذاشتم(به نام txt) حالا نمیدونم چطوری میشه به اون تکست دسترسی پیدا کرد و متن اون رو تغییر داد. مثلاً این کد رو مینویسم

کد:
 var counter:uint=0;
 counter +=3 ;
 btn.txt.text=counter.toString();
خطای عدم دسترسی میده.
Access of possibly undefined property txt through a reference with static type flash.display:SimpleButton.

با سپاس:rose:
 

aliamel

کاربر فعال
سلام
یک دکمه به اسم btn رو استیج قرار بدید و کد زیر رو در فریم اول سند فلش تون درج کنید :
PHP:
import flash.events.MouseEvent;
import flash.text.TextField;

btn.addEventListener(MouseEvent.CLICK, func);
var txt:TextField=new TextField();
btn.addChild(txt);
var cnt:Number=0;

function func(ev:MouseEvent):void
{
    cnt+=3;
    this.txt.text =cnt.toString() ;
}
 

splinter cell

Well-Known Member
با تشکر
مطمئنید اینی که نوشتید کار میکنه؟ من که نتونستم استادش کنم:green:
خطا میداد.

ببینید دکمه و متن روی اون با فونت و رنگ و اندازه بخصوصی طراحی شده اند.و من نمیخوام در حالت رانتایم به استیج متن رو اضافه کنم.قراره کاربر روی یک شیی دیگه کلیک کنه و این دکمه با متنی درباره اون انتخابی که کرده ظاهر بشه. اینها رو گفتم که بگم
کد:
[COLOR=#0000bb]this[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]txt[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]text [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000bb]cnt[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]toString[/COLOR][COLOR=#007700]() ;
[/COLOR]
زیاد مناسب کار من نیست.
سئوال من اینه چطور میشه به تکست داینامیک واقع در یک دکمه طراحی شده دسترسی پیدا کرد؟
 

aliamel

کاربر فعال
این کد هم در حالت Runtime کار می کنه و هم در حالات دیگه .
ضمنا تکست فیلد قبل از این که کاربر روی دکمه کلیک کنه ایجاد یه مقدار رشته ای می گیره و پس از اون که روی دکمه کلیک شد عمل جمع صورت می گیره .
از کلاس StyleSheet هم می تونید برای استایل دهی به متن (از جمله سایز متن و فونت و ... )استفاده کنید .
-----
موفق باشید .
 

splinter cell

Well-Known Member
دوستان این همون کدی هست که علی عزیز گفت ولی ارور میده. لطفاً ببینید مشکلش کجاست. و اینکه سئوال من راه حل دیگه ای نداره؟
سپاس
 

پیوست ها

  • Untitled-1.rar
    5 کیلوبایت · بازدیدها: 10

JavidFlasher

کاربر فعال
خب SimpleButtonیه شیئ استاتیکه نمیتونی یه displayObjectیا هر داده ی دیگه رو ضمیمش کنی
از MovieClipاستفاده کنی حله
 
آخرین ویرایش:

splinter cell

Well-Known Member
ممنون
خوب خدا رو شکر فهمیدیم مشکل کار کجاست.
من بخاطر این از simpleButton استفاده کرده بودم که سه حالتش آماده هست و راحت تره از آماده سازی یک موی کلیپ برای این عمل.
 

splinter cell

Well-Known Member
جاوید جان قسمت اول حرفت رو گرفتم .دکمه رو طراحی کنم و با addChild به یک مووی کلیپ حامل اضافه اش کنم. اما تکست روش یعنی چی؟ میشه یه مثال برام بذاری یا ......
 

JavidFlasher

کاربر فعال
بفرمایید
اینو تست کنین :
PHP:
package 
{

	import flash.display.*;
	import flash.text.*;
	import flash.display.SimpleButton;
	import flash.events.MouseEvent;

	public class main extends MovieClip
	{
		private var i:int;
		private var holder:MovieClip;
		private var lable:TextField;
		private var button:SimpleButton;
		public function main()
		{
			button = new SimpleButton(buttonModes(3333333),buttonModes(6457878),buttonModes(656565656),buttonModes(000000));
			holder=addChild(new MovieClip()) as MovieClip;
			holder.addEventListener(MouseEvent.CLICK,onClick);
			lable=new TextField();
			lable.text =String(i)
			lable.mouseEnabled = false;
			lable.selectable = false;
			holder.addChild(button);
			holder.addChild(lable);
		}
		private function onClick(e:MouseEvent)
		{
			i++;
			lable.text = String(i);
		}
		public function buttonModes(color:uint)
		{
			var buttonModes:MovieClip=new MovieClip();
			buttonModes.graphics.beginFill(color);
			buttonModes.graphics.drawRect(0,0,100,50);
			addChild(buttonModes);
			return buttonModes;
		}
	}
}
 

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

بالا