主题:  .dir嵌套到.dir,运行效果出错了。

白天

职务:普通成员
等级:1
金币:0.0
发贴:61
#12002/3/20 16:46:06
我用.dir 作为cast放到另一个.dir的时间线上。
子.dir用了交互。代码如下:
on mouseEnter me
-- put the member of sprite me.spritenum
set the member of sprite 10 to the member of sprite me.spritenum
-- put the member of sprite 10
end

在编辑状态下运行正确。然后嵌套到主.dir中,放在某通道上enabled script,运行,移动鼠标,这下子好看了,什么反应都没有!然后我加入现在注释掉的两行,编辑状态下运行,提示还是正确的,再回到主.dir,运行,呵呵,好笑了,第二个提示是“-- (member 0 of castLib 0)”。但是其中有两个是非零的信号(同样也是错误的)。
推断:
1:代码是运行了的
2:sprite 10 指向了主.dir
3:作为引用的the member of sprite(me.spritenum) 同样指向了主.dir
4:内部机制有问题。

那么:应该用什么样的方法才能正确使子.dir的调用有效呢?
我假设的前提是:主.dir与子.dir之间不应该有勾搭,就是说,不要在主或子.dir上给对方任何假设。他们应该是完整、独立的。

请有见解的朋友参与讨论。



南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
#22002/3/20 22:13:45
照你的说法只好用 play movie 的方法来调用另一个dir了,只有这样才是比较独立的。

至于你的程序中的 me.spritenum 和 sprite 10 是不是同一个?如果是同一个当然不会有什么反应。



超级战神

职务:普通成员
等级:1
金币:0.0
发贴:48
#32002/3/20 22:27:03
我也同样的问题!!!!!!!!我嵌套dxr文件,,,,结果一塌糊涂

高手呢?????????????



白天

职务:普通成员
等级:1
金币:0.0
发贴:61
#42002/3/21 10:41:37
东影默在上个帖子中说
引用:
照你的说法只好用 play movie 的方法来调用另一个dir了,只有这样才是比较独立的。

至于你的程序中的 me.spritenum 和 sprite 10 是不是同一个?如果是同一个当然不会有什么反应。


代码是连接到10以外的任何一个sprite。
设想是这样的:以主.dir作为大的框架,把子模块都以.dir的形式嵌套起来,形成一个比较有机的系统,这样子可以保持大环境的延续。所以并不想用play movie来调用,究竟哪种方法比较合适呢?

我有另外一段子.dir,也是运用同样的代码,但是不是交互的,自动运行,也嵌套了,嘿!完全没有问题。我服了。



超级战神

职务:普通成员
等级:1
金币:0.0
发贴:48
#52002/3/21 12:04:30
我看没办法,用miaw,,,,????没法背景透明呀!!!!!!!!!!



白天

职务:普通成员
等级:1
金币:0.0
发贴:61
#62002/3/21 12:41:12
超级战神在上个帖子中说
引用:
我看没办法,用miaw,,,,????没法背景透明呀!!!!!!!!!!

一旦用了miaw,立刻变成独立于大环境的东西。有些不符合有机整体的要求了。



sxg312

职务:普通成员
等级:1
金币:0.0
发贴:22
#72002/3/21 12:49:55
这种方法叫LDM,
嵌套的D文件支持的事件有一些限制,如交换图片的程序不能写在鼠标事件(mouseenter,mouseleave等)中,你要另外写个函数,然后在这些事件中调用,还有种方法就是用全局变量来判别电影的当前状态,在主电影中用这些得到这些数值就能很好的控制了。

个人觉得用这种方法做菜单之类的很不错,能作出很多效果。大家一起来研究研究。



超级战神

职务:普通成员
等级:1
金币:0.0
发贴:48
#82002/3/21 13:28:29
说具体点好吗?怎么写独立的函数,以及怎么用全局变量控制,,,些个东西看看!!!!!!!!!!



南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
#92002/3/21 13:32:27
如果你是用 Import 的方法引入“子.dir” ,那么往往会被系统自动拆分为 filmloop和cast的形式,如果是以外部文件方式引入那么就会有很多的脚本限制,是很难对“子.dir”进行有机的控制。就是在开发时也不好进行模块化,它们之间的延续性和依赖性太强了,不适合独立进行开发。而且在后期调试时会变得非常的繁杂,所以就我个人而言我是绝提倡这样做的。我认为还是用 play movie 的方法来调用独立的影片。
至大环境的统一,我们可以通过用统一的界面和命名规则来进行,还有共用成员表也是极好的方法。



sxg312

职务:普通成员
等级:1
金币:0.0
发贴:22
#102002/3/21 15:31:31
特别强调一点这种方法用来作小功能(如目录)很好,其他的用途可能很不方便。
下面给出一段我的目录称序:

----1.子电影中按钮上的脚本
property currentMember,enterme
global where_goto
on beginSprite me
currentMember = sprite(me.spritenum).member.name
enterme=false
where_goto=void
end
on mouseenter me
cursor 280
enterme=true
case the rollover of
1: where_goto=1
2: where_goto=2
3: where_goto=3
4: where_goto=4
5: where_goto=5
otherwise nothing
end case
end
on mouseLeave me
cursor -1
enterme=false
where_goto=void
end
on mousedown me
cursor -1
enterme=false
end
on exitframe me -----交换图片程序
if enterme=true then
rolloverMember = currentmember & "-a"
sprite(the currentspriteNum).member =rolloverMember
else
sprite(the currentspriteNum).member =currentMember
end if
end

----2.主电影中(把以下的脚本放在该精灵-即子电影上)
global where_goto
on mouseup me
case where_goto of
"1",1: go to movie"mov01"
"2",2: go to movie"mov02"
"3",3: go to movie"mov03"
"4",4: go to movie"mov04"
"5",5: go to movie"mov05"
otherwise nothing
end case
where_goto=void
end
...
...
...