ازمون

ghoghnos1

New Member
سلام علیکم
یه ازمون وصل کردنی ساختم دوتا سوال به دو تا جواب باید وصل بشه حالا یه کلید هم گذاشتم که با زدن کلید هر کدام که درست بود جلوی گزینه تیک زده بشه و اگر غلط بود علامت ضربدر.

اگه لطف کنید یه نمون بسازید ممنون میشم.

البته توی همین انجمن یه نمونه بود دانلود کردم ولی هم ناقص بود و هم سر در نیاوردم.

تشکر
 

ghoghnos1

New Member
سلام علیکم
اگه زحمتی نیس یه لطف کنید یه نمونه ساده برام بسازید
ممنونتم
 

mahsky

Member
آموزش ساخت

سلام
این مبحث را در چند جلسه توضیح میدم
جلسه اول
یک sprite تعریف کنید.
[JSS]
var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);
[/JSS]
من اسمشو line گزاشتم.
حالا گزینه ها رو طراحی میکنیم.
attachment.php


بعد یک دایره کشیده آن را سمبل مووی کلیپ میکنیم.
سپس شیش تا از آن کپی میکنیم و آن ها را مقابل گزینه ها قرار میدهیم.
attachment.php

دایره های سمت چپ را به ترتیب زا بالا به پایین p3,p2,p1 و دایره های سمت راست را از بالا به پایین j3,j2,j1 نام گزاری میکنیم.
یک علامت تیک و ضبدر ساخته آن ها را به دو مووی کلیپ تبدیل کرده سپس سه تا از هر کدام در سمت چپ مقابل گزینه ها قرار میدهیم.
attachment.php

و از بالا به پایین علامت های تیک را tick3,tick2,tick1 و علامت های ضبدر را zarb3,zarb2,zarb1 نام گزاری میکنیم.

پنل اکشن را باز کرده و کد های زیر را مینویسیم.
[JSS]
tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);

[/JSS]
پس تا اینجا باید کد های زیر را نوشته باشید.
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{

}
}
[/JSS]
 

پیوست ها

  • Untitled-2.jpg
    Untitled-2.jpg
    5.9 کیلوبایت · بازدیدها: 14
  • Untitled-2.jpg
    Untitled-2.jpg
    7 کیلوبایت · بازدیدها: 14
  • Untitled-3.jpg
    Untitled-3.jpg
    8.5 کیلوبایت · بازدیدها: 14

mahsky

Member
سلام
جلسه دوم؛
دو تابع draw_line و end_line را با اضافه کردن کد های زیر کامل تر میکنیم.
تابع draw_line
[JSS]
function draw_line(event:MouseEvent)
{

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);

}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);

}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
}
}
[/JSS]

تابع end_line
[JSS]
function end_line(event:MouseEvent)
{
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}
}
[/JSS]
پس کل کد ها تا الآن
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);

}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);

}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
}
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}
}
}
[/JSS]
نکته:):توجه کنید که مرکز دایره بر مرکز مووی کلیپ منطبق باشد.

خوب تا این جا شما میتوانید گزینه ها را به هم وصل کنید.
موفق باشید.
 

mahsky

Member
سلام
جلسه سوم
یک متغییر از نوع آرایه تعریف میکنیم اسم آن را ar میزاریم.
[JSS]
var ar:Array = new Array ;
[/JSS]
بعد در تابع draw_line یک متغییر String تعریف میکنیم.اسم آن را st میزاریم و قدار اولیه آن را برابر "" قرار میدهیم.
[JSS]
function draw_line(event:MouseEvent)
{
var st:String = new String ;
st = "";
[/JSS]
st ها را در تابع draw_line و در شرط ها دارای مقدار های متفاوت میکنیم.
[JSS]
function draw_line(event:MouseEvent)
{
var st:String = new String ;
st = "";

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
}
[/JSS]
سپس در تابع end_line و در شرط ها آن را به علاوه ی مقادیر مختلف میکنیم.
به این صورت که اگر p2 که قرار است به j1 وصل شود پس متغییر در j1 به علاوه ی 2 میشود
یا اگر p1 قرار است به j3 وصل شود متغییر را در j3 به علاوه 1 میکنیم.یعنی به صورت زیر
[JSS]
function end_line(event:MouseEvent)
{


if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);

}
[/JSS]
یعنی عدد متغییر در پاسخ را به علاوه خودش در جواب پاسخ میکنیم.

حالا متغییر i را از نوع int تعریف میکنیم.
[JSS]
var i:int = 0;
[/JSS]
سپس در پایان تابع end_line کد زیر را مینویسیم.
[JSS]
function end_line(event:MouseEvent)
{

.
.
.
.

ar = st;
i++;
}
[/JSS]
موفق باشید.:oops:
 

mahsky

Member
سلام
جلسه چهارم
کد ما تا اینجا به این شکل در آمد
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

var ar:Array = new Array ;

var i:int = 0;

stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{
var st:String = new String ;
st = "";

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
}
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{


if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
ar = st;
i++;
}
}
[/JSS]
که دارای چندین باگ است.
در این جلسه دو باگ آن را رفع میکنیم.
یک مشکل آن این است که ما میتوانیم بیش از دو خط را به یک گزینه وصل کنیم برای این کار کد های زیر را در جاهای مناسب اضافه میکنیم.
[JSS]
p1.mouseEnabled = false;
p2.mouseEnabled = false;
p3.mouseEnabled = false;
j1.mouseEnabled = false;
j2.mouseEnabled = false;
j3.mouseEnabled = false;
[/JSS]
مکان اضافه کردن آن ها در شرط های مربوط به آن هاست.
باگ دوم با رسم اولین خط شروع میشود.پس از رسم آن اگر از هر جای صفحه کلیک کنید و روی j2یا j3 بیاید یک خط j1 را به j2وj3 وصل میکند. برای جلوگیری از آن کل تابع end_line را به جز بخشی از آن در شرط زیر قرار میدهیم.
[JSS]
if (st!="")
{

}
[/JSS]
یعنی
[JSS]
function end_line(event:MouseEvent)
{
if (st!="")
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";
j1.mouseEnabled = false;

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";
j2.mouseEnabled = false;

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
j3.mouseEnabled = false;
}
ar = st;
i++;
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}
[/JSS]
توجه کنید دستور
[JSS]
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
[/JSS]
در شرط قرار ندارد.
کل کد ما تا اینجا
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

var ar:Array = new Array ;

var i:int = 0;




stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{
var st:String = new String ;
st = "";

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";
p1.mouseEnabled = false;
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
p2.mouseEnabled = false;
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
p3.mouseEnabled = false;
}
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{
if (st!="")
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";
j1.mouseEnabled = false;

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";
j2.mouseEnabled = false;

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
j3.mouseEnabled = false;
}
ar = st;
i++;
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}

}
[/JSS]

موفق باشید.
 

mahsky

Member
سلام
جلسه پنجم
یک دکمه ایجاد و اسم آن را btn رار میدهیم.
در پنل اکشن کد زیر را وارد میکنیم.
[JSS]
btn.addEventListener(MouseEvent.CLICK,check_f);
function check_f(event:MouseEvent)
{

}
[/JSS]
سپس متغییر های زیر را ایجاد میکنیم.
[JSS]
var Ch_aval:Boolean = false;
var Ch_dovom:Boolean = false;
var Ch_sevom:Boolean = false;
[/JSS]
کد های زیر را در تابع check_f وارد میکنیم.
[JSS]
for each (var per in ar)
{
if (pe=="11")
{

Ch_aval = true;
}
else if (pe=="22")
{
Ch_dovom = true;
}
else if (pe=="33")
{
Ch_sevom = true;
}
}
[/JSS]
کد های بالا مقادیر داده شده به آرایه را بررسی میکنند که کدام گزینه ها را وصل کرده اید.
کدهای زیر نیز باعث میشوند که جواب های درست معلوم شود.
[JSS]
if (Ch_aval)
{
tick1.visible = true;
}
else
{
zarb1.visible = true;
}
if (Ch_dovom)
{
tick2.visible = true;
}
else
{
zarb2.visible = true;
}
if (Ch_sevom)
{
tick3.visible = true;
}
else
{
zarb3.visible = true;
}
[/JSS]
پس تابع check_f به صورت زیر تعریف شد.
[JSS]
function check_f(event:MouseEvent)
{
for each (var per in ar)
{
if (per=="11")
{

Ch_aval = true;
}
else if (per=="22")
{
Ch_dovom = true;
}
else if (per=="33")
{
Ch_sevom = true;
}
}
if (Ch_aval)
{
tick1.visible = true;
}
else
{
zarb1.visible = true;
}
if (Ch_dovom)
{
tick2.visible = true;
}
else
{
zarb2.visible = true;
}
if (Ch_sevom)
{
tick3.visible = true;
}
else
{
zarb3.visible = true;
}
}
[/JSS]
کل کد ایجاد شده
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

var ar:Array = new Array ;

var i:int = 0;

var Ch_aval:Boolean = false;
var Ch_dovom:Boolean = false;
var Ch_sevom:Boolean = false;


stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{
var st:String = new String ;
st = "";

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";
p1.mouseEnabled = false;
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
p2.mouseEnabled = false;
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
p3.mouseEnabled = false;
}
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{
if (st!="")
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";
j1.mouseEnabled = false;

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";
j2.mouseEnabled = false;

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
j3.mouseEnabled = false;
}
ar = st;
i++;
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}

}
btn.addEventListener(MouseEvent.CLICK,check_f);
function check_f(event:MouseEvent)
{
for each (var per in ar)
{
if (per=="11")
{

Ch_aval = true;
}
else if (per=="22")
{
Ch_dovom = true;
}
else if (per=="33")
{
Ch_sevom = true;
}
}
if (Ch_aval)
{
tick1.visible = true;
}
else
{
zarb1.visible = true;
}
if (Ch_dovom)
{
tick2.visible = true;
}
else
{
zarb2.visible = true;
}
if (Ch_sevom)
{
tick3.visible = true;
}
else
{
zarb3.visible = true;
}
}
[/JSS]

نمونه پیوست شد.
کد دارای یک باگ هست (وقتی روی یکی از p ها کلیک کنید دیگر نمیتوانید از آن خط رسم کنید.)که اگر وقت کنم آن را هم درست میکنم.
موفق باشید.
 

پیوست ها

  • u.rar
    13.1 کیلوبایت · بازدیدها: 5

mahsky

Member
رفع باگ به همراه نمونه

سلام
جلسه
خوب برای رفع باگ کد های زیر را حذف کنید.
[JSS]
p1.mouseEnabled = false;
p2.mouseEnabled = false;
p3.mouseEnabled = false;
[/JSS]
تابع زیر را بنویسید.
[JSS]
function MahSky(B:Number)
{
if (B==1)
{
p1.mouseEnabled = false;
}
else if (B==2)
{
p2.mouseEnabled = false;
}
else if (B==3)
{
p3.mouseEnabled = false;
}
}
[/JSS]
در تابع draw_line یک متغییر با نام b از نوع عددی درست کنید.
[JSS]
function draw_line(event:MouseEvent)
{
var b:Number = 0;
[/JSS]
سپس در شرط های زیر در را مساوی عدد قرار بدید.
[JSS]
function draw_line(event:MouseEvent)
{
.
.
.
if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";

b = 1;
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
b = 2;
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
b = 3;
}
.
.
.
}
[/JSS]
بعد کد
[JSS]MahSky(b);[/JSS]
را در شرط های زیر قرار دهید.
[JSS]
function end_line(event:MouseEvent)
{
if (st!="")
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";
j1.mouseEnabled = false;
MahSky(b);

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";
j2.mouseEnabled = false;
MahSky(b);

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
j3.mouseEnabled = false;
MahSky(b);
}
.
.
.
}


[/JSS]
کل کد ایجاد شده
[JSS]
import flash.events.MouseEvent;
import flash.display.Sprite;

tick1.visible = false;
tick2.visible = false;
tick3.visible = false;

zarb1.visible = false;
zarb2.visible = false;
zarb3.visible = false;

var line:Sprite = new Sprite ;
line.graphics.lineStyle(2,0x0099FF);
addChild(line);

var ar:Array = new Array ;

var i:int = 0;

var Ch_aval:Boolean = false;
var Ch_dovom:Boolean = false;
var Ch_sevom:Boolean = false;


stage.addEventListener(MouseEvent.MOUSE_DOWN,draw_line);
function draw_line(event:MouseEvent)
{
var b:Number = 0;
var st:String = new String ;
st = "";

if (event.target.name == "p1")
{
line.graphics.moveTo(p1.x,p1.y);
st = "1";

b = 1;
}
else if (event.target.name=="p2")
{
line.graphics.moveTo(p2.x,p2.y);
st = "2";
b = 2;
}
else if (event.target.name=="p3")
{
line.graphics.moveTo(p3.x,p3.y);
st = "3";
b = 3;
}
stage.addEventListener(MouseEvent.MOUSE_UP,end_line);
function end_line(event:MouseEvent)
{
if (st!="")
{

if (event.target.name == "j1")
{
line.graphics.lineTo(j1.x,j1.y);
st += "2";
j1.mouseEnabled = false;
MahSky(b);

}
else if (event.target.name=="j2")
{
line.graphics.lineTo(j2.x,j2.y);
st += "3";
j2.mouseEnabled = false;
MahSky(b);

}
else if (event.target.name=="j3")
{
line.graphics.lineTo(j3.x,j3.y);
st += "1";
j3.mouseEnabled = false;
MahSky(b);
}
ar = st;
i++;
}
stage.removeEventListener(MouseEvent.MOUSE_UP,end_line);
}

}
btn.addEventListener(MouseEvent.CLICK,check_f);
function check_f(event:MouseEvent)
{
for each (var per in ar)
{
if (per=="11")
{

Ch_aval = true;
}
else if (per=="22")
{
Ch_dovom = true;
}
else if (per=="33")
{
Ch_sevom = true;
}
}
if (Ch_aval)
{
tick1.visible = true;
}
else
{
zarb1.visible = true;
}
if (Ch_dovom)
{
tick2.visible = true;
}
else
{
zarb2.visible = true;
}
if (Ch_sevom)
{
tick3.visible = true;
}
else
{
zarb3.visible = true;
}
}
function MahSky(B:Number)
{
if (B==1)
{
p1.mouseEnabled = false;
}
else if (B==2)
{
p2.mouseEnabled = false;
}
else if (B==3)
{
p3.mouseEnabled = false;
}
}
[/JSS]
موفق باشید.

:oops:
 

پیوست ها

  • r.rar
    13.3 کیلوبایت · بازدیدها: 13

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

بالا