我想在Flash中製作一個按鈕,用於暫停在我的文件中運行的所有影片剪輯。這些影片剪輯在我的主時間軸中都不是補間,它們都有各自的時間軸。每個移動片段都由一個指示剪輯開始播放的按鈕觸發。所以,如果任何人都可以幫我創建這個暫停按鈕,我將不勝感激。感謝您的時間。如何在Flash CS5中製作通用暫停按鈕?
4
A
回答
2
下應該做的伎倆:
// create an array to store all playing movieclips
var playing = [];
// when a movieclip is played add it to the array like this:
// playing.push(myMovieClip);
// call this from your pause button's click handler
function pauseAll()
{
// loop through all the playing movieclips ...
for (var i = 0; i < playing.length; i ++)
{
// ... and stop them
playing[i].stop();
}
// now clear the array
playing = [];
}
0
我不知道中斷所有影片剪輯的內置方式。
如果您保留對要在全局可訪問對象中暫停的影片剪輯的引用,則可以遍歷這些調用暫停的引用。
+1
我還是比較新的閃光,你能告訴我一個你是什麼樣的例子談論?感謝您及時的回覆。 – dlee2499
0
此功能將停止所有對象的嵌套的MovieClip。只需通過你的舞臺或頂級顯示類來停止/播放所有內容。這樣您就不必跟蹤將數據添加到數組中,而且沒有任何開銷。
function recursiveStop(parentClip:DisplayObjectContainer, useStop:Boolean = true, gotoFrame:Object = null):void {
var tmpClip:MovieClip = parentClip as MovieClip;
if (tmpClip) {
if (useStop) {
(gotoFrame != null) ? tmpClip.gotoAndStop(gotoFrame) : tmpClip.stop();
}else {
(gotoFrame != null) ? tmpClip.gotoAndPlay(gotoFrame) : tmpClip.play();
}
}
var i:int = parentClip.numChildren;
while(i--){
if(parentClip.getChildAt(i) is DisplayObjectContainer){
recursiveStop(parentClip.getChildAt(i) as DisplayObjectContainer, useStop, gotoFrame);
}
}
}
+0
請注意,如果您有不在顯示列表中的動畫片段,它們將不受此方法的影響。 – BadFeelingAboutThis
3
出口要暫停所有的符號/有一個基類像這樣的遞歸恢復,那麼你就不必走路整個顯示器樹:
package com.stackoverflow
{
import flash.display.MovieClip;
import flash.events.Event;
[Event(name="clipAdded", type="flash.events.Event")]
[Event(name="clipRemoved", type="flash.events.Event")]
public class BaseClip extends MovieClip
{
protected var baseClipChildren:Array;
protected var paused:Boolean = true;
public function BaseClip()
{
super();
baseClipChildren = new Array();
addEventListener(Event.ADDED_TO_STAGE, onAdded);
addEventListener("clipAdded", onClipAdded);
addEventListener(Event.REMOVED_FROM_STAGE, onRemoved);
addEventListener("clipRemoved", onClipRemoved);
}
protected function onAdded(event:Event):void
{
var target:BaseClip = event.target as BaseClip;
if(target == this) {
dispatchEvent(new Event("clipAdded", true));
}
}
protected function onClipAdded(event:Event):void
{
var target:BaseClip = event.target as BaseClip;
if(target && target != this) {
event.stopImmediatePropagation();
baseClipChildren.push(target);
}
}
protected function onRemoved(event:Event):void
{
var target:BaseClip = event.target as BaseClip;
if(target == this) {
dispatchEvent(new Event("clipRemoved", true));
}
}
protected function onClipRemoved(event:Event):void
{
var target:BaseClip = event.target as BaseClip;
if(target && target != this) {
event.stopImmediatePropagation();
baseClipChildren.splice(baseClipChildren.indexOf(target),1);
}
}
public function stopAll():void {
stop();
for each(var clip:BaseClip in baseClipChildren) {
clip.stopAll();
}
}
public function playAll():void {
play();
for each(var clip:BaseClip in baseClipChildren) {
clip.playAll();
}
}
}
}
相關問題
- 1. 如何在Flash CS5中暫停'碰撞'?
- 2. Flash CS5和自定義按鈕製作
- 3. 如何在flash中編碼播放和暫停按鈕AS3
- 4. 如何在Flash遊戲中實現音樂的「暫停」按鈕?
- 5. 在Flash CS5中快速複製和粘貼按鈕
- 6. 如何在Pycharm中暫停程序執行(暫停按鈕不工作)?
- 7. 如何按暫停按鈕時暫停程序執行
- 8. AVAudioPlayer - 暫停按鈕
- 9. 如何禁用控制中心播放/暫停按鈕?
- 10. 如何製作音頻播放/暫停按鈕?
- 11. C#按鈕暫停
- 12. Flexslider暫停按鈕
- 13. 暫停按鈕在切換播放/暫停時不工作
- 14. 使用按鈕控制動態文本,Flash CS5,AS3
- 15. 如何停止visual studio去program.cs(暫停所有)暫停按鈕
- 16. 在Flash CS5中使用動態文本的按鈕
- 17. 將動作添加到Flash CS5中的按鈕符號框架
- 18. Flash CS5&AS2:無法將動作添加到按鈕中
- 19. 算法在flash中暫停
- 20. 如何在iOS控制中心使用停止按鈕而不是使用快捷鍵暫停按鈕
- 21. 如何使用WPF路徑繪製暫停按鈕
- 22. 的SoundCloud流暫停按鈕不工作
- 23. 暫停按鈕每次都不工作
- 24. 如何處理asyncTask和暫停按鈕
- 25. 如何隱藏播放/暫停按鈕?
- 26. 如何保持的fancybox暫停按鈕
- 27. 在Flash CS5中使用ArrayCollection
- 28. 在按鈕外面工作的Lua/Corona暫停按鈕
- 29. 如何使用ActionScript 3在Adobe Flash的計時器中暫停代碼暫停
- 30. 暫停播放按鈕
閱讀[* *此**](http://www.catb.org/~esr/faqs/smart-questions.html#before)第一個 – strah