اموزش papervision

arjmand200

Member
به نام خدا

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


من در اخرهای جلسه قبل انواع متریالها رو گفتم و 11 تا از اونها رو اسم بردم و اونجا هم گفتم که از این متریالها شاید کلا از لحاظ کار سه تاشون با هم فرق دارن و اکثر اونها شبیه هم هستن


خوب اولین قسمت رو با BitmapAssetMaterial شروع میکنم قبل از هر کاری اول ببینیم متدهای این کلاس چیه :

PHP:
public function BitmapAssetMaterial( linkageID:String, precise:Boolean = false )

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

خوب اولین پارامتر نشون میده که ورودی از نوع bitamData هستش یعنی عکسی که وارد کتابخانه شده و به اکشن اسکریپت export شده
البته این نوع متریال رو من زیاد توصییه نمیکنم چون حجم کار رو افزایش میده

اینم نمونه کد که میتونین تستش کنین البته این رو هم بگم که من عکس رو با این اسم BMPMaterial اکسپورتش کردم:


PHP:
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.*;


var viewport:Viewport3D = new Viewport3D(800,600);
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();
var material:BitmapAssetMaterial = new BitmapAssetMaterial("BMPMaterial",false);


material.doubleSided = true;

material.smooth = true;
material.tiled = true;

var materials:MaterialsList = new MaterialsList(material);
materials.addMaterial(material, "all");


addChild(viewport);
var sphere:Cube = new Cube(materials,550,550,400,20,20,20,0,0);
sphere.x =0;
sphere.y = 0;

scene.addChild(sphere);
addEventListener(Event.ENTER_FRAME , mainFun);
function mainFun(e:Event) {
	sphere.rotationX =stage.mouseY/20
	sphere.rotationY += 10;
	renderer.renderScene(scene, camera, viewport);
}

--------------------------------------------------

2) BitmapColorMaterial : این متریال تقریبا کار colorTransform رو انجام میده و متدهاش اینه :

PHP:
public function BitmapColorMaterial(color:Number=0xFF00FF, alpha:Number=1)

که فکر نکنم نیاز به توضییح باشه

3)BitmapFileMaterial تقریبا مناسبترین نوع متریال که واسه وب مناسبه و عکس رو از بیرون لود میکنه . کار کلاس loader رو میکنه و حجم کار هم خیلی کم میشه :

PHP:
public function BitmapFileMaterial( url :String="", precise:Boolean=false )

که مشخصه url هم مسیر فایل تون هستش میتونین با قرار دادن این مقدار (URLRequest.url) یه لودینگ هم واسه متریالی که داره لود میشه بزارین طوری که اول از نوع MovieMaterial استفاده کنین بعد که فایلتون لود شد این متریال رو null کنین و این متریال رو ست کنین (البته ترفند زیاده و من دیگه نمیخوام اینارو توضییح بدم و این دیگه به خلاقیت خودتون بستگی داره)

4)BitmapMaterial : اینم هم یه انتخاب خوبیه واسه اونایی که میخوان خودشون از طریق کلاس bitmapdata یه متریال بسازن

PHP:
public function BitmapMaterial( asset:BitmapData=null, precise:Boolean = false)

asset نام bitmapdata هستش که ساختین (یه مثال میزنم تا کامل منظورمه رو بدونین)

فقط کافیه این خط کدها رو به پروژتون اضافه کنین :

PHP:
var bmp:BitmapData = new BitmapData(400,400,false,0xFF0000*Math.random()+0xF0);
bmp.perlinNoise(40,10,10,10,false,true,7,false,null);
var material:BitmapMaterial = new BitmapMaterial(bmp,false);

من در این جا با perlinNoise یه افکت خیلی ساده ساختم واسه این که بدونین چطوری میشه از این متریال استفاده کرد


5)BitmapViewportMaterial : اما دوستان این متریال

PHP:
public function BitmapViewportMaterial(bitmapViewport:BitmapViewport3D, precise:Boolean=false)

این متریال یکم پیچیدس فقط میتونم این رو بگم که شما میتونین چندین viewport رو به متریال نسبت بدین ، درسته که مقدار پردازش فایل خیلی افزایش میده (چون موتور رندر باید دوبار از viewport رندر بگیره ولی کارایی خیلی زیادی داره که بعد در موردش مثال خواهم زد )
در پارامتر اول ما باید کلاس :BitmapViewport3D وارد پروژه کنیم که این کلاس دقیق همانند viewport هستش که قبلا گفتم و متدهاش هم عین اونه :
PHP:
public function BitmapViewport3D(viewportWidth:Number=640, viewportHeight:Number=480, autoScaleToStage:Boolean = false,bitmapTransparent:Boolean=false, bgColor:int=0x000000,  interactive:Boolean=false, autoCulling:Boolean=true)

اگه خواستین باهاش کار کنین اول اون رو وارد پروژتون کنین :

PHP:
import org.papervision3d.view.BitmapViewport3D



6) BitmapWireframeMaterial : دقیقا شبیه کلاس (متریال ) WireframeMaterial هستش . بخاطر همون یکیش رو توضییح میدم

PHP:
public function BitmapWireframeMaterial(color:Number=0xFF00FF, alpha:Number=1, thickness:Number=3)

7) ColorMaterial : یه متریال خیلی ساده دقیقا شبیه BitmapColorMaterial

PHP:
public function ColorMaterial( color:Number=0xFF00FF, alpha:Number = 1, interactive:Boolean = false )

8)MovieAssetMaterial : شبیه BitmapAssetMaterial که چندتا متد اضافه داره :

PHP:
public function MovieAssetMaterial( linkageID:String="", transparent:Boolean=false, animated:Boolean=false, createUnique:Boolean=false, precise:Boolean = false)

animated واسه اینه که اگه متریالی که تو کتابخانه دارین اگه داخلش انیمیشن داره papervision رو مجبور کنه که با دقت یکم بیشتری این متریال رو رندر کنه اگه توی حالت false باشه بهتره !

و اما createUnique : نمیدونم با مفهوم instance و copy توی 3dmax اشنا هستین (من خودم فقط دیدم)
خوب من میگم نیازی نیست زحمت بکشین ، ببینید copy یعنی از والد همه چیز روی میگیره و اگه والد تغییر کرد copy هم تغییر میکنه ولی اگه instance باشه یعنی فرزند از والد مستقله و بعد از createUnique فرزند هر تغییر در والد رو ازش صرفنظر میکنه
در اینجا اگه این متد رو روی false بزارین یعنی هر موقع والد(موی کلیپ کتابخانه) تغییری رو داشته باشه فرزند همه اون تغییرات رو میپذیره ولی اگه روی true باشه والد دیگه از پدر جداست
البته من خودم هم درست متوجه نشدم منظور از این تغییر چه تغییری هستش چون در هر دو صورت فرزند از والد خصوصیات رو به ارث میبره احتمالا منظورش runtime هستش (حالا هر کی اطلاعاتی داره ما رو هم بی نصیب نذاره)

9) MovieMaterial : هم شبیه قبلیه ولی یه متد اضافه به نام rect داره که همون کلاس rectangle هستش یعنی شما میتونین فضایی که همیشه AutoResize روش تاثیر بذاره ، چون کنترل این ابجکت سخته بهتره همون روی null باشه

PHP:
public function MovieMaterial( movieAsset:DisplayObject=null, transparent:Boolean=false, animated:Boolean=false, precise:Boolean=false, rect:Rectangle=null )

10)VideoStreamMaterial : خوب موند فقط این متریال دوستان برای کار با باید با کلاس video کار کرده باشین
برای کار باهاش به یک ابجکت از نوع video و یه کانکشن از نوع netStream دارین من یه مثال میزنم ولی شما تستش نکنین چون یکم سنگینه :wink::

PHP:
public function VideoStreamMaterial ( video:Video, stream:NetStream , precise:Boolean = false, transparent:Boolean = false )

اول ابجکت video رو بسازین (من دیگه زیاد در این باره توضییج نمیدم البته توضییح زیادی هم نیاز نداره)

PHP:
var nc:NetConnection = new NetConnection ();
nc.connect (null);
var ns:NetStream = new NetStream(nc);
ns.play ("vid.flv");
var vid:Video = new Video();
vid.attachNetStream (ns);

vid.flv هم نام ویدیو تون هستش
بعد این کد رو وارد کنین :

PHP:
import flash.display.BitmapData;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.*
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.*;

var material:VideoStreamMaterial = new VideoStreamMaterial( vid, ns , false, false);


var viewport:Viewport3D = new Viewport3D(800,600);
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();

material.doubleSided = true;

var materials:MaterialsList = new MaterialsList(material);
materials.addMaterial(material, "all");

addChild(viewport);
var sphere:Cube = new Cube(materials,550,550,400,20,20,20,0,0);
sphere.x =0;
sphere.y = 0;

scene.addChild(sphere);
addEventListener(Event.ENTER_FRAME , mainFun);
function mainFun(e:Event) {
	sphere.rotationX =stage.mouseY/20;
	sphere.rotationY += 10;
	renderer.renderScene(scene, camera, viewport);
}

متریالها هم تموم شد
 

arjmand200

Member
خوب چون جلسه قبل زیاد شد و قبلا هم به خاطر سوال یکی از دوستان یه مقداری توضییح دادم من دو جلسه رو با هم یکی کردم ولی در جلسه بعدی مفصل در مورد lighting و shading صحبت میکنم که مبحث بزرگی . میشه گفت جزو مباحث مهم در papervision هستش که مشتقات زیادی داره (flat shading,specular,negativ و مهمتر reflection )
در ضمن من این مرجع رو هم معرفی میکنم که  Documentation خود papervision هستش


پس تا جلسه بعد...
 

arjmand200

Member
این رو میگی :
PHP:
public function MaterialsList( materials :*=null ):void

materials : میتونه یک indexArray یا object باشه که میتونی اونجا وارد کنی البته همون کار addMaterial رو میکنه مثل همون کار با ارایه ها مثلا شما چند طور میتونی ارایه بسازی مثال:

PHP:
var arr0:Array = ["index0","index1","index2","index3","index4"];
var arr:Array = new Array();
arr[0] = "index0";
arr[1] = "index1";
arr[2] = "index2";
arr[3] = "index3";
arr[4] = "index4";
arr[5] = "index5";

تو اینجا هم میتونی به جای استفاده از addMaterial که قبلا گفتم مستقیما توی همون متد این متریالهاتو وارد کنی مثلا :

PHP:
var materials:MaterialsList = new MaterialsList(
  {
   
   front:  new ColorMaterial(0xFFFFFF, 1),
   back:   new ColorMaterial(0xFF0000, 1),
   right:  new ColorMaterial(0x00FF00, 1),
   left:   new ColorMaterial(0x333333, 1),
   top:    new ColorMaterial(0x0000FF, 1),
   bottom: new ColorMaterial(0xFFFF00, 1)
  } );

با هر کدومش راحتی با اون کار کن
 

arjmand200

Member
به نام خدا

با یکم تاخیر امروز ادامه مبحث lighting رو این جلسه خواهم گفت  
خوب دوستان ما در papervision یه نوع light داریم PointLight3D(تا اونجایی که من میدونم ) البته اگه LightMaps رو هم جزوء این گروه حساب کنیم میشه گفت که دو نوع light داریم البته LightMaps تقریبا یه نوع میشه گفت تنظیم برای PointLight3D  و متریالهای shading حساب میشه خوب حال زیاد مهم نیست من اول یکم در مورد light توضیح بدم
ببینید کار light در papervision همون کار چراغ خونه هستش که به صورت یه منبه نور نقطعه ای هستش
دوستان PointLight3D رو با باید از متریالهای shading استفاده کرد چون مشخصه که هر منبع نوری یه نوع سایه با خودش خواهد داشت این سایه میتونه یکی از این سه نوع باشه :

PhongMaterial
FlatShadeMaterial
GouraudMaterial

خوب حالا چطوری از این PointLight3D استفاده میشه
دوستان برای اینکه ما بتونیم به فضای سه بعدی یه منبع روشنایی تعریف بکنیم زیاد مشکلی وجود نداره و با یه خط کد ساده میشه این منبع نور رو تعریف کرد ولی برای استفاده از این منبع نور و اختصاص اون به فضایی که چندتا ابجکت داره و هر ابجکت به طور جداگانه یه متریال مخصوص داره یه کم مبحث پیچیده داریم
و نمیشه گفت که با یه جلسه میشه همه این مباحث رو اموزش داد به خاطر همون واسه اونایی که میخوان این مباحث lighting و shading رو خوب یاد بگیرن این مراجع رو نشون میدم تا قبلا یه پیش زمینه ای داشته باشن چون واقعا این مبحث ، یه مبحث سنگینیه :


من برای شروع یه منبع نور ایجاد میکنم و به ابجک خودم که یه ابجکت از نوع cube هست یه متریال از نوع FlatShadeMaterial نسبت میدم ، این متریال چندتا ورودی داره که اولیش منبع نور هستش که بر حسب فاصله اون از ابجکت و موقعیتش در scene یه سایه رو ابجکت که به صورت flat (صاف) هستش ایجاد میکنه چون این متریال سایه ای از نوع flat داره و این نوع سایه یه طیف رنگ برای سایه میپذیزه من این رنگ رو 0xCCFF66 میذارم کار تمومه و بعد یه رندر از کار

و اما متدهای FlatShadeMaterial , PointLight3D :

PointLight3D دوتا متد داره :


PHP:
public function PointLight3D(showLight:Boolean = false, flipped:Boolean = false)

showLight میگه منبع نور دیده بشه یا نه
flipped هم بیان کننده جهت منبع نور هستش که اون رو برعکس میکنه البته تو DAE-shading در (ascollada) کاربرده داره که فعلا برای ما کاربرد نداره

متدهای FlatShadeMaterial :

PHP:
public function FlatShadeMaterial(light:LightObject3D, lightColor:uint=0xffffff, ambientColor:uint=0x000000, specularLevel:uint=0 )

این متدها هم برای توضیحش باید اون مراجع رو بخونین :

اینم مثال :

PHP:
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.lights.PointLight3D;


var viewport:Viewport3D = new Viewport3D(800,600);
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var light:PointLight3D = new PointLight3D(false);
var flatShade:FlatShadeMaterial = new FlatShadeMaterial(light, 0xCCFF66,0xFF0000 );
var materials:MaterialsList = new MaterialsList({all : flatShade});
var renderer:BasicRenderEngine = new BasicRenderEngine();
addChild(viewport);

var cube:Cube = new Cube(materials,250,250,250);
cube.x =-200;
cube.y = 0;

light.x = 0;
light.y = 0;
light.z = 0;

scene.addChild(cube);
addEventListener(Event.ENTER_FRAME , mainFun);
function mainFun(e:Event) {
	cube.rotationY +=10;
	renderer.renderScene(scene, camera, viewport);
}

خوب دوستان میتونید متریالهای GouraudMaterial و PhongMaterial رو هم خودتون تست کنین چون متدهای هر سه یکی مثل همه با این تفائت که مقدار specularLevel در GouraudMaterial و FlatShadeMaterial اختیاریه ولی در PhongMaterial که بر حسب تشدید نور کار میکنه اجباری هر چند که مقدار default اون صفره

خوب این جلسه هم تموم شد
در جلسه بعد در مورد سایه ها که تقریبا مثل متریالها هستند صحبت میکنم
 

sizanjavad

کاربر فعال
با تشکر و سپاس فراوان از زحمات دوست عزیز arjmand200. واقعا خسته نباشین

post_thanks.gif
post_thanks.gif
post_thanks.gif
post_thanks.gif
 

arjmand200

Member
دوست من قرار نیست من جواب شما رو بدم بنده کارهای مهمتر از جواب دادن این سوالات رو دارم
خواهشا در جایی که به شما ربطی نداره پست ندین
 

javadsava

New Member
با سلام خدمت همگی و تشکر ویژه از arjmand200

اولا چند تا سئوال: 1- چطوری می توان رخدادهای موس را تشخیص داد و متناسب با هر کدام یک عمل خاصی را انجام داد؟
2- چگونه می توان کامپوننت هایی که با استفاده از papervision ساخته شده را ریسورس کرد؟ یعنی ببینیم چطوری درست شدن.
 

javadsava

New Member
سورس یک mp3 پلیر که هماهنگ با پخش آهنگ یک افکت سه بعدی رو نشون می ده. کافیه فایل موسیقی خودتون را توی پوشه پروژه بزارید و نام اون رو توی سورس جایگزین کنید.



// Import Papervision3D
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;

// constants
const CHANNELS_PER_DIRECTION:int= 256;
const CUBES_PER_CHANNEL:int = 8;
const CHANNEL_STEPS:int = Math.floor(CHANNELS_PER_DIRECTION / CUBES_PER_CHANNEL);

// papervision vars
var viewport:Viewport3D;
var scene:Scene3D;
var camera:Camera3D;
var cube:Cube;
var renderer:BasicRenderEngine;

// arrays holding references to cubes for each channel
var cubesLeftChannel:Array = new Array();
var cubesRightChannel:Array = new Array();
// animation flag
var bolAnimationForward:Boolean = true;

// sound vars
var sndObject:Sound = new Sound();
var reqObject:URLRequest = new URLRequest("so-deep.ram2000.mp3");
var sndBytes:ByteArray = new ByteArray();

// INIT
function init():void {
init3D();
initSound();
// add event listener for render loop
addEventListener(Event.ENTER_FRAME, renderLoop);
}

// init3d
function init3D():void {
// Create viewport
viewport = new Viewport3D(0, 0, true);
// add viewport to stage
addChild(viewport);

// create basic render engine
renderer = new BasicRenderEngine();

// Create scene
scene = new Scene3D();

// blue cube material
var blueMaterial:MaterialsList = new MaterialsList(
{
front: new ColorMaterial(0x0066FF),
back: new ColorMaterial(0x0066FF),
right: new ColorMaterial(0x0046B0),
left: new ColorMaterial(0x0046B0),
top: new ColorMaterial(0x1171FF),
bottom: new ColorMaterial(0x1171FF)
}
);

// green cube material
var greenMaterial:MaterialsList = new MaterialsList(
{
front: new ColorMaterial(0x00CC00),
back: new ColorMaterial(0x00CC00),
right: new ColorMaterial(0x009F00),
left: new ColorMaterial(0x009F00),
top: new ColorMaterial(0x00CC00),
bottom: new ColorMaterial(0x00CC00)
}
);

// create cubes for left channel
for(var i = 0; i < CUBES_PER_CHANNEL; i++) {
cube = new Cube(blueMaterial, 12, 50, 400);
cube.x = i * 50;
cubesLeftChannel.push(cube);
scene.addChild(cube);
}
//create cubes for the right channel
for(i = 0; i < CUBES_PER_CHANNEL; i++) {
cube = new Cube(greenMaterial, 12, 50);
cube.x = (i * 50) + 25;
cubesRightChannel.push(cube);
scene.addChild(cube);
}

// create camera
camera = new Camera3D();
// set camera zoom
camera.zoom = 11;
// set cube in the center as camera target
camera.target = cubesRightChannel[CUBES_PER_CHANNEL / 2 - 1] as Cube;
// camera start position
camera.x -= 400;
camera.y += 300;
}

function initSound():void {
// load mp3 file and play it
sndObject.load(reqObject);
sndObject.play();
}

// render loop function
function renderLoop(e:Event):void
{
// compute spectrum and put result in byte array
SoundMixer.computeSpectrum(sndBytes);

//
// LEFT CHANNEL CUBES
for(var i = 0; i < CUBES_PER_CHANNEL; i++) {
var myCube:Cube = cubesLeftChannel as Cube;
// get the right positions for the byte array
sndBytes.position = CHANNEL_STEPS * 4 * i;
// resize current cube
myCube.scaleY = sndBytes.readFloat();
}
//
// RIGHT CHANNEL CUBES
for(i = 0; i < CUBES_PER_CHANNEL; i++) {
myCube = cubesRightChannel as Cube;
// get the right positions for the byte array
sndBytes.position = 1024 + (CHANNEL_STEPS * 4 * i);
// resize current cube
myCube.scaleY = sndBytes.readFloat();
}

// swing camera
if(bolAnimationForward) {
camera.x += 4;
if(camera.x > 800)
bolAnimationForward = false;
} else {
camera.x -= 4;
if(camera.x < -400)
bolAnimationForward = true;
}

// render current scene
renderer.renderScene(scene, camera, viewport);
}

init();
 

arjmand200

Member
در جواب سوالت که گفتی چطوری میشه رویدادهای موس رو تشخیص داد با کلاس InteractiveScene3DEvent کار کن که اکثر eveny های موس رو dispatch میکنه :

PHP:
public static const OBJECT_CLICK:String = "mouseClick";
		/**
		 * Dispatched when a container in the ISM recieves a MouseEvent.CLICK event
		* @eventType mouseClick
		*/
		public static const OBJECT_DOUBLE_CLICK:String = "mouseDoubleClick";
		/**
		 * Dispatched when a container in the ISM receives an MouseEvent.MOUSE_OVER event
		* @eventType mouseOver
		*/
		public static const OBJECT_OVER:String = "mouseOver";
		/**
		 * Dispatched when a container in the ISM receives an MouseEvent.MOUSE_OUT event
		* @eventType mouseOut
		*/
		public static const OBJECT_OUT:String = "mouseOut";
		/**
		 * Dispatched when a container in the ISM receives a MouseEvent.MOUSE_MOVE event
		* @eventType mouseMove
		*/
		public static const OBJECT_MOVE:String = "mouseMove";
		/**
		 * Dispatched when a container in the ISM receives a MouseEvent.MOUSE_PRESS event
		* @eventType mousePress
		*/
		public static const OBJECT_PRESS:String = "mousePress";
		/**
		 * Dispatched when a container in the ISM receives a MouseEvent.MOUSE_RELEASE event
		* @eventType mouseRelease
		*/
		public static const OBJECT_RELEASE:String = "mouseRelease";
		/**
		 * Dispatched when the main container of the ISM is clicked
		* @eventType mouseReleaseOutside
		*/
		public static const OBJECT_RELEASE_OUTSIDE:String = "mouseReleaseOutside";

در مورد سوال دوم هم بنده اطلاع خاصی ندارم چون اصلا لزومی هم نمیبینم واسه اینکار
از بابت اموزشت هم ممنون
 

javadsava

New Member
من توی papervision یک مبتدی هستم و این سورسی که گذاشتم رو توی یک سایت خارجی پیدا کردم.
بعد همونطور که گفتم من مبتدی هستم و اصلا نمی دونم چطوری از کلاس اینتراکتیو استفاده کنم. اگه ممکنه و برای شما زحمتی نیست لطفا آموزشهات رو ادامه بدی چون این خارجی ها اصلا درست و حسابی آموزش نمیدن و یه سورسهای عجیب غریب میزارن که با کلمه package شروع میشه و اصلا نمی دونم که چطوری از این سورس ها استفاده کنم.

خواهش دومی که از شما دارم اینه که من رو تو انجام این کار کمک کنید: من میخوام یک منوی سه بعدی بسازم که با کلیک بر روی هر جزء اون مثلا متغیر t تغییر بکنه.
 

arjmand200

Member
دوست من ببینید اینکه شما نمیتونید از اموزشهای خارجی استفاده کنین اونطوری که شما فرمودین ، این مشکل از شماست چون کلاسی که با package شروع میشه نشون دهنده اینکه که author (نویسنده اون ) اون رو به صورت یه کلاس timeline کلاس ننوشته .اینکه چطوری از این نوع کلاسها استفاده کنین در همین انجمن دوستان نوشتن :wink:

در مورد ادامه اموزشها نیز بعد توضیحاتی رو میدم و صد در صد ادامه اموزشها رو قرار خواهم داد حالا اینجا یا جای دیگه فعلا معلوم نیست چون یکم سرم شلوغه

در مورد سوال سومتون هم من نمیتونم کمکی بکنم چون با این اموزشها دیگه نیازی به این کار نمیبینم فقط یه راهنمایتون میکنم که خودتون انجامش بدین شما اون منوی رو که طراحی کردین در داخل یه movieclip ادش کنین و اون موی کلیپ رو به عنوان یه متریال MovieAssetMaterial به روی یه plane بندازین کار زیاد سختی نیست

در مورد اینکه فرمودی خارجی زیاد درست اموزش نمیدن اشباه میکنی چون همین خارجی ها به قول شما ، این کلاس رو نوشتن ( اونم به صورت رایگان اگه ماها مینوشتیم قیمتش معلوم نبود چقدره :green: )

 
 

javadsava

New Member
کسي لينک دانلود کامپوننت papervision 3d رو که پسوندش mxp باشه و قابل نصب که بتونم اون رو توي ليست کامپوننت ها پيدا کنم رو داره؟
اگر هست خواهشا توي گوگل کد نباشه چون اصلا نمي تونم وارد سايتش بشم و دائما ارور ميده.
با تشکر
در ضمن اون کامپوننتي که آقاي ارجمند تو پست اول گذاشته بودند با پسوند swc رو توي پوشه کامپوننت فلش کپي کردم ولي توي ليست کامپوننت ها ظاهر نميشه. کسي دليلش رو مي دونه؟
 

javadsava

New Member
با سلام و آرزوی قبولی طاعات و عبادات روزه داران
یک پیشنهاد و یک خواهش و یک سوال داشتم . از اونجا که به نظرم درک و فهم کدهای timeline خیلی راحت تر از کدهای کلاسها هست پیشنهاد میکنم دوستانی که استاد هستند یک برنامه ای رو بنویسند که کدهای کلاس رو به کد تایم لاین تبدیل کنه. البته می دونم که این کار مشکلاتی هم داره از قبیل اینکه بعضی از کلاسها مستقل نیستن و در واقع کلاسهای دیگه ای رو گسترش می دن اما به نظرم این کار شدنی است.
من یک برنامه آموزش قرآن برای پایه سوم ابتدایی با فلش درست کردم و تقریبا کامله فقط مونده لیست سوره ها که تا حالا سه چهار بار درستش کردم اما هر بار نظرم رو زیاد جلب نکرد تا اونجا که توسط شما (arjmand200) با papervision آشنا شدم و تصمیم گرفتم لیست سوره ها رو سه بعدی درست کنم. با توجه به اینکه باز گشایی مدارس نزدیکه از شما خواهش دارم اقلا روزی دو سه خط آموزشتون رو ادامه بدید تا بتونم به این برنامه یک سر و سامونی بدم.
هر بار خواستم از گوگل کد دانلود کنم یا ارور میده یا از من username و password می خواد. چه کار کنم؟
 

arjmand200

Member
ا سلام خدمت دوستان یه چند مدت به خاطر مشکلاتی بد جوری مشغول بودم ، تقریبا یکی دو هفته پیش یه وبلاگ زدم . در این وبلاگ من علاوه بر این اموزش ها وادامه اونا اموزشهای مرتبط رو در سطحی خیلی خوب قرار خواهیم داد دوستان میتونن ادامه این اموزشها و مطالب آموزشی دیگه رو در این وبلاگ بخونن
 
آخرین ویرایش:

arjmand200

Member
با سلام خدمت دوستان عزیز یکی دو روز بود روی نسخه موبایل وبلاگ کار میکردم تا بتونم کاری بکنم که وبلاگ رو دوستان بر روی موبایل هم ببینین البته خیلی از سرویس ها رو امتحان کردم تا اینکه سروریس mobify رو خیلی خوب دیدم من هم روی این سیستم وبلاگ رو ست کردم دوستان میتونن با موبایل وبلاگ رو هم ببینین و یه کار دیگه هم که کردم این بود که چون اکثر این سرویسها دامنه رو تغییر میدادن من تونستم بدون اینکه دامنه رو تغییر بدم این سایت رو برای سرویس mobify ست کنم حالا میتونین بدون تغییر در دامنه با همون دامنه ilflash.ir وارد وبلاگ بشن فقط یه توصیه که داشتم این بود که با opera کار کنین چون مرورگر خود نوکیا یا سونی css رو کامل ساپورت نمیکنه
 

vobot.null

New Member
سلام خدمت همه دوستان عزیز به خصوص جناب آقای ارجمند امیدوارم لحظات خوبی داشته باشین من مدت زیادی هست که دارم مطالب این انجمن رو میخونم واقعا مطالب این قسمت که مرتبط با آموزش papervision بود لذت بخش بود مطالب بسیار خوبی در اینجا هست که حتی توی کمتر سایت خارجی میشه اونارو پیدا کرد و آقای ارجمند با حوصله فراوان این مطالب رو گذاشتن من به جرعت میتونم بگم که بهترین آموزش هایی بود که توی این انجمن دیدم
اگه راستشو بخواین یه جورایی به اقای ارجمند حسادت کردم البته به اطلاعاتی که دارن : :green:
امیدوارم اقای ارجمند دوباره فعالیت خودشون رو آغاز کنن و ما رو از اطلاعات خوبشون محروم نکنن من هم با چندتا از این فریم ورکهای 3 بعدی و 2 بعدی کار کردم و در صورتی که اقای ارجمند بخوان حتمن باهاشون این مطالب رو ادامه میدیم
با تشکر
 

arjmand200

Member
سلم خدمت دوست محترم
خیلی از ابراز لطفتون ممنونم راستش اصلا مشکلی توی فعالیت خودم توی این انجمن یا وبلاگ نیست و تنها دلیلش مشکلات درسی و کنکور (ارشد ) هستش ، به خاطر همینه که نمیتونم فعالیتی داشته باشم انشالله بعد از کنکور فعالیتم رو شروع میکنم (حالا چه نو سایت و چه تو وبلاگ )
بازم تشکر میکنم :wink:
 

lololumiere

Member
salam doste man man dar on jalaseye shoroe kar natonestam chizi doros konam....nemidonam moshkel az component bud ya na faghat ye khaheshi mikonam file componeneto age mishe 2 bare bezar.oni ke on bala bud ke nashod
 

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

بالا