چند سئوال در مورد as3 (اسکرول - لود فایل)

borna008

Active Member
سلام
بنده دو تا مشکل با این فلش داشتم چه تو as2 چه حالا تو as3 که تازه وارد شدم . تازه اضافه هم شده .ممنون میشم راهنماییم کنید:
1.فایلی که از بیرون داخل موی کلیپ لود میشه سرجای مشخص شده نیست! با هزار زحمت و جابجا کردن تنظیم میشه!!
2.موی کلیپ بستر ( موی کلیپی که فایلم درونش لود میشه) بعد از لود شدن هنوز سرجاش هست! در صورتی که در as2 فایل جایگیزین موی کلیپ بستر می شد و با اجرای فلش خبری از موی کلیپ بستر نبود !!!!
3. این اسکروله منو دیونه کرده! اصلا تنظیم نمیشه!( من میخوام داخل این اسکرول متن به انتخاب کاربر از میان چند متن لود بشه و میزان اسکرول به تناسب فایل لود شده اسکرول بشه!!! ( اسکرولی هم که جناب هادی تو امضاشون بود استفاده کردم! با اونم نتونسم کار کنم)

( نمونه از فایل را پیوست کردم! تا تکمیل کننده توضیحاتم بشه.بازم ممنون که وقت میزارید و راهنمایی میکنید):rose:مشاهده پیوست Sampel.rar
 

triton

کاربر فعال
دوست عزیز، به نظرم شما از ScrollPane استفاده کن. می تونی اون را در پنل Components پیدا کنید.
 

borna008

Active Member
ممنون از راهنماییتون! اما نمیخوام خیلی ساده باشه ! به گونه ای باشه که بشه تو طراحیش دست برد و به فراخور پروژه پیاده سازیش کرد!
 
آخرین ویرایش:

triton

کاربر فعال
برای دستکاری ظاهرش هم می تونی به Library Panel بری و قسمت های موجود در Component Assets را دستکاری کنی.
 

borna008

Active Member
بینید من تا حالا باهاش کار نکردم. مد نظر من اسکرولیه که داخلش متنی که کاربر انتخاب کرده از خارج از فلش لود میشه! فایل پیوستی گویای همه چیز هست! دلم میخواد سه تا مشکل بالا با راهنمایی شما اساتید حل بشه! ممنون ( خیلی فوریه!):green:
 

triton

کاربر فعال
من نمونه را دیدم که ScrollPane را پیشنهاد دادم. ScrollPane می تونه همه DisplayObjects ها، تصاویر (PNG , GIF , JPG) و فایل های SWF را نمایش بده. ظاهرش را هم که می تونی تغییر بدی دیگه چه انتظاری داری!

یک مثال:
1. ScrollPane را از پنل Components به پنل Library بکش و توی اونجا رها کن.
2. F9 را بزن تا Actions باز بشه.
3. کد زیر را توی اون بنویس:
[JSS]
import fl.containers.ScrollPane;
import fl.events.ScrollEvent;
import fl.controls.ScrollBarDirection;

var myScrollPane:ScrollPane = new ScrollPane();
myScrollPane.scrollDrag = true;
myScrollPane.setSize(400,200);
myScrollPane.source = "images/image.jpg";
addChild(myScrollPane);
[/JSS]

اگه کارت راه نیافتاد، بگو تا برات یک ویدئوی آموزشی بسازم.
 

borna008

Active Member
بازم بخاطر راهنماییاتون ممنون . اما یه سئوال دیگه! من اگه بخوام سورس که میخواد درون scrollpan لود بشه طبق یک شرط باشه چکار باید بکنم (منظورم طرز صحیح نوشتن هست!)منظورم این کده:
[HTMLS]import fl.containers.ScrollPane;
import fl.events.ScrollEvent;
import fl.controls.ScrollBarDirection;

var myScrollPane:ScrollPane = new ScrollPane();
myScrollPane.scrollDrag = true;
myScrollPane.setSize(527,335);
myScrollPane.source = if (MyGlobal.drsherkat == "bespar"){
"KohrangGroup/KohrangLastik/bespar.png"
} else if (MyGlobal.drsherkat == "kohrang"){
"KohrangGroup/KohrangLastik/kohrangtxt.jpg"
}
myScrollPane.x = 422
myScrollPane.y = 80
addChild(myScrollPane);[/HTMLS]
دوم اینکه دوتا سئوالهای دیگم بی جواب موندن. ممنون میشم محبت کنید راهنماییم کنید.:rose:
 

borna008

Active Member
آقا موضوع لود را حلش کردم شما زحمت نکشید با یه تعریف متغییر درست شد: صحیحش اینه:(اگه اشتباه نکنم و راه حلم درست باشه!!!)
[PHPS]import fl.containers.ScrollPane;
import fl.events.ScrollEvent;
import fl.controls.ScrollBarDirection;
if (MyGlobal.drsherkat== "bespar"){
MyGlobal.adres = "KohrangGroup/KohrangLastik/bespar.png"
} else
if (MyGlobal.drsherkat== "kohrang"){
MyGlobal.adres = "KohrangGroup/KohrangLastik/kohrang.jpg"
}
var myScrollPane:ScrollPane = new ScrollPane();
myScrollPane.scrollDrag = true;
myScrollPane.setSize(527,335);
myScrollPane.source =MyGlobal.adres
myScrollPane.x = 422
myScrollPane.y = 80
myScrollPane.alpha =1
addChild(myScrollPane);

[/PHPS]

اگه اون دو سئوال دیگم جواب داده بشه ممنون میشم
 
آخرین ویرایش:

triton

کاربر فعال
دوست من، ببین، توی as 3.0 هیچ چیزی جایگزین دیگری نمیشه (منظورم توی این مورد هست) بلکه اطلاعات داخل Parent یا والد ( همون MoveClip که در اینجا ScrollPane هست)قرار میگیرد و نمایش داده میشه و هرقتی که unload کنی اطلاعات از درون اون حذف میشه. پس ScrollPane هیچ موقع با load یا unload حذف یا اضافه نمیشه بلکه با addChild و removeChild این اتفاق می افته.

در مورد نمایش متن هم باید بگم که: شما یک متن دارید، متن را توی فلش لود می کنید، فلش اون را تعدادی data می بینه و شما باید برای نمایش اون را به یک Text بدی تا نمایش داده بشه. می تونی از کلاس TextField کمک بگیری. یا راحتتر اینه که متن مورد نظرت را توی یک فایل جداگانه قرار بدی(مستقیم توی فلش بنویسی) و خروجی SWF از اون بگیری و اون را توی ScrollPane لود کنی.
 

borna008

Active Member
بازم ممنون! با راهنمایی های شما سئوال شماره 3 ( که در مورد اسکرول بود) حل شد . حالا میمونه 2 تا سئوال دیگم! که زیاد به برنامه نویسی فکر نکنم کار داشته باشه!شایدم داره و من نمیدونم! میشه راهنماییم کنید:oops::shock::green:
 

borna008

Active Member
بازم ممنون! با راهنمایی های شما سئوال شماره 3 ( که در مورد اسکرول بود) حل شد . حالا میمونه 2 تا سئوال دیگم! که زیاد به برنامه نویسی فکر نکنم کار داشته باشه!شایدم داره و من نمیدونم! میشه راهنماییم کنید:oops::shock::green:
 

triton

کاربر فعال
یعنی توضیحات قبلی کافی نبود! لطفا سوالاتت را واضح تر وروشنتر بگو تا بیشتر توضیح بدهم ... اصلا میخوای چه کار کنی؟
 

borna008

Active Member
چرا قربان راهنمایی های شما خیلی کمک کرد.سوء تفاهم نشه!! من پست اول که گذاشتم 3 تا سئوال داشتم! سئوال آخر مربوط به اسکرول بود که با راهنمایی های شما حل شد دو تا سئوال دیگه با عرض شرمندگی هست که اگه اونا را هم راهنمایی کنید ممنون میشم

1.فایلی که از بیرون داخل موی کلیپ لود میشه سرجای مشخص شده نیست! با هزار زحمت و جابجا کردن تنظیم میشه!!
2.موی کلیپ بستر ( موی کلیپی که فایلم درونش لود میشه) بعد از لود شدن هنوز سرجاش هست! در صورتی که در as2 فایل جایگیزین موی کلیپ بستر می شد و با اجرای فلش خبری از موی کلیپ بستر نبود !!!!
( تو نمونه ای که گذاشتم عکس کشتی گویا هست).
:)
 

triton

کاربر فعال
فلش مختصات در فلش مثل اکثر نرم افزارها هست و با دنیای واقعی فرق داره. محور x ها از راست به چپ و محور yها از بالا به پایین افزایش پیدا می کنه و مرکز مختصات هم بالا سمت چپ هست. پس ScrollPane هم بالا-چپ عکس را در بالا-چپ خودش قرار می ده که فکر کنم این موضوع برای شما ایجاد مشکل کرده. وقتی که یک symbolجدید می سازید، یک قسمت داریم به اسم Registration که مرکز مختصات را برای موی کلیپ تعیین می کنه و وقتی عکس لود میشه و به لیست نمایش اضافه میشه بالا-چپ اون در این قسمت قرار میگیره. پس بی زحمت وارد loadjpg01 بشو و شکلی که کشیدی را انتخاب کن و پنل Align را باز کن از قسمت Align اولین و چهارمین گزینه را بزن (از سمت چپ به راست) تا محتویات با بالا-چپ تنظیم بشند.
کد زیر را هم به کدهای خودت اضافه کن تا اسکرول افقی در سمت راست قرار بگیره:
[JSS]
myScrollPane.addEventListener(Event.COMPLETE , onComplete);
function traceData():void{
myScrollPane.horizontalScrollPosition = myScrollPane.horizontalScrollBar.maxScrollPosition;
}

[/JSS]

اگه توی as 3.0 توی MovieClip ی که دارای یک سری محتویات هست چیزی را اضافه کنی، محتویات قبلی از بین نمی ره مگه اینکه خودت آنها را از لیست نمایش حذف کنی(که به نظر هم خیلی منطقی می رسه). شما با استفاده از فلش یک شکل کشیدید، پس یک شی دارید که باید حذف کنید برای حذف یک شی از لیست نمایش باید از removeChild و removeChildAt استفاده کنی . پس باید شما قبل از لود شکلی که کشیدید (یعنی همون مستطیل سبز یا قرمز رنگ) را از لیست نمایش حذف کنید پس داریم:

[JSS]
loadjpg01.removeChildAt(0)
[/JSS]

که این به این معنی هست: آقای فلش، بی زحمت اولین شئ قابل نمایش در loadjpg01 را از لیت نمایش بیرون بیار که دیده نشه.
 

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

بالا